首页 文章

在codeigniter中的Cron工作

提问于
浏览
6

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

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

例如 http://admin.com/sites/publish/

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

5 回答

  • 5

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

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

    要么

    php index.php controller function param1 param2 param3 etc
    
  • 0

    只需使用此命令并粘贴它 .

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

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

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

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

  • 8

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

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

    如果您需要保护网址,可以使用以下方式通过邮寄方式发送数据:

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

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

  • 1

    我这样做,创建文件夹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
    

相关问题