如何使用codeigniter设置cron作业


How to set up a cron job with codeigniter

我正试图使用COdeigner设置一个cron作业,但我不知道如何让它工作。我在controllers文件夹中有一个名为email_check.php的文件,我在servers-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吗。

如果有人能帮助我或为我指明正确的方向,我将不胜感激!

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

~/public_html/sitefolder/index.php controller method

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

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

取决于PHP CLI的位置。

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

你想写一个脚本,创建一个新的控制器实例并调用该方法,或者通过URL调用它,我认为是这样的

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