在codeigniter中的Cron工作

时间:2011-09-06 15:30:17

标签: php codeigniter cron cpanel

我正在尝试使用CodeIgniter构建的网站执行cron作业 - 我可以访问CPanel cron功能,任何人都可以建议使用CPanel设置cron作业的最佳方法吗?

我正在使用CodIgniter,所以无法确定如何在cron作业中调用控制器?

E.g http://admin.com/sites/publish/

如何使用cron作业访问站点控制器中的此发布功能?

5 个答案:

答案 0 :(得分:8)

最好的方法是从cron作业中的命令行调用...

php /path/to/index.php controller >> /dev/null

您可以通过CI中的命令行运行控制器,请参阅here

答案 1 :(得分:5)

对我来说,更简单的方法是使用cURL并在cron中执行url:

curl http://admin.com/sites/publish/

如果您需要保护网址,可以使用以下网址发送数据:

curl -X POST -d "apikey=yourapikey&another=variable" http://admin.com/sites/publish/

这样你就不必使用php参数和不同的配置。

答案 2 :(得分:2)

我是这样做的, 创建文件夹cron

/application
/cron
   my_task.php
/public

为内容

的每个cron作业/cron/my_task.php制作脚本
<?  $_SERVER["SCRIPT_URL"] = "/controllerName/MethodName"; // you can set url in routes if you want
    $_SERVER["HTTP_HOST"] = "your_site_address.com"; // without http://www
    require(dirname(__FILE__) . "/../public/index.php");  // path to index.php
 ?>  

使控制器Cron与其他人一样,但在__construct

中添加IP验证

最终像

一样运行
1 10 * * * cd /path_to_site_folder/cron/ && usr/local/bin/php /path_to_site_folder/cron/my_task.php >> path_to_log/some.log

答案 3 :(得分:1)

对于Cronjob,请尝试访问命令行控制器,函数和参数:

php index.php/controller/function/param1/param2/param3 etc

php index.php controller function param1 param2 param3 etc

答案 4 :(得分:0)

只需使用此命令并将其粘贴。

wget www.example.com/index.php/controller/function