5

我正在尝试使用 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。

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

4

2 回答 2

9

要通过命令行使用 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 所在的位置。

于 2013-07-17T15:17:36.140 回答
0

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

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

* * * * * wget http://sitename.com/email_check
于 2013-07-17T11:17:40.567 回答