如何使用codeigniter设置cron作业

时间:2013-07-17 10:57:57

标签: php codeigniter cron-task

我正在尝试使用COdeigniter设置一个cron作业,但我无法弄清楚如何让它工作。我的控制器文件夹中有一个名为email_check.php的文件,我已将.cron文件添加到服务器cron文件夹,其中包含以下内容

email_check.cron

*/1 * * * * php /var/www/html/application/controllers/email_check

email_check.php

class Email_check extends CI_Controller {

    function __construct()
    {
        parent::__construct();
        $this->index();
    }

    function index()
    {
        $this->load->model('admin/info_model'); 
        $this->info_model->addTestData();
    }

}

addTestData将新行添加到数据库表中。我希望每分钟运行一次,但它根本不起作用,我不知道为什么。

也许它可能是错误的路径。我是否需要将php部分指向服务器中的php.exe。

如果有人可以提供帮助或指出我正确的方向,我们将不胜感激!

2 个答案:

答案 0 :(得分:9)

要通过命令行使用CodeIgniter,您需要调用index.php文件并将控制器和方法作为参数传递,并传递任何其他参数。因此,至少cron作业调用将是:

~/public_html/sitefolder/index.php controller method

或使用应用程序索引文件的路径。但是,您还需要使用为命令行编译的PHP,而不仅仅是PHP用于CGI-FCGI。所以你的电话可能是这样的:

/ramdisk/bin/php5-cli ~/public_html/sitefolder/index.php controller method

取决于PHP CLI的位置。

答案 1 :(得分:0)

这不起作用,因为只是点击你的email_check.php控制器不会做任何事情,因为它不会调用你的index()方法。

您想要编写一个脚本来创建控制器的新实例并调用该方法或通过URL调用它,我想这样的事情

* * * * * wget http://sitename.com/email_check