2

我正在为我的项目使用 CodeIgniter。我有这个障碍来自我..

我的控制器中有这个方法,我想每小时调用一次。让我们这样:

class Notifs extends CI_Controller {

    public function __construct() {
        parent:: __construct();
        // load stuff here
    }

    public function index() {

    }

    /* I want to call this function on an hourly basis */
    public function check_overdue_stuffs() {
        // do the checking here
    }

}

我完全不知道如何实现这一点。我试过使用sleep($seconds),但这只是一团糟。

有什么想法可以完美地做到这一点吗?一个详细的例子会很棒。谢谢!

4

1 回答 1

3

这很简单,但不要只将其保留在您的 PHP 代码中。您需要使用 cronjob 脚本 (linux) 或 Windows 等效脚本(在您的软件所在的服务器上)。

这是一个简单的 cron,您可以添加以提取特定的 cli 方法:

# hourly cron
0 * * * * php /www/ciWebsite/index.php [controller] [method] >/dev/null 2>&1

这样,它运行你想要的控制器 + 方法并将输出转储到/dev/null

尝试运行/www/ciWebsite/index.php notifs check_overdue_stuff,看看它是否有效(显然更新你的路径)

编辑

  • 修复了一个额外的条目(我有 cli = 文件夹 + 控制器 + 方法)
于 2014-02-24T05:17:15.670 回答