【问题标题】:Running CodeIgniter cron on localhost在本地主机上运行 CodeIgniter cron
【发布时间】:2020-05-08 01:47:47
【问题描述】:

我正在尝试在我的本地主机上每 5 分钟运行一次 cron 作业。使用 Cronnix 应用程序,我输入了以下命令

0,5 * * * * root curl http://localhost:8888/site/  > /dev/null

当我在浏览器中访问http://localhost:8888/site/ 时,脚本运行良好。我已经阅读了一些关于让 CI 在 Cron 上运行、使用 wget 和各种其他选项的内容,但没有一个很有意义。

在另一个 SO 帖子中,我发现了以下命令

wget -O - -q -t 1 http://www.example.com/cron/run

“-O - -q -t 1”的语法究竟是什么?

还有其他选择吗?

【问题讨论】:

  • btw 0,5 * * * * 将在每小时的 :00 和 :05 运行。如果你想要每 5 分钟一次,那么 */5 * * * * 就是你想要的。

标签: php codeigniter cron


【解决方案1】:

-O - 表示输出到标准输出 (-O /dev/null) 将使任何输出无效。 -q 表示保持安静(不要打印任何进度条),这会破坏任何日志文件的外观。 -t 1 表示只尝试一次。如果连接失败或超时,它将不会重试。

有关 wget 命令的完整手册,请参阅 http://linux.die.net/man/1/wget

编辑:刚刚意识到您将所有这些都通过管道传输到 /dev/null ,您也可以省略 -O 参数或将其指向 /dev/null 并省略最终管道。

【讨论】:

    【解决方案2】:

    我总是在 cli 模式下使用 PHP。对我来说似乎更有效率。

    首先设置一个 cron 条目,如:

    */5 * * * * /usr/bin/php /var/www/html/cronnedscript.php
    

    cronnedscript.php 应该放在你的根 www 文件夹中。

    然后编辑 cronnedscript.php :

    <?php
    $_GET["/mycontroller/index"] = null;
    require "index.php";
    ?>
    

    其中 mycrontroller 是您要触发的 CI 控制器。

    如果您希望控制器仅由 crond 运行,而不是通过公共 www 请求运行,请将以下行添加到控制器和 cronnedscript.php 中:

    if (isset($_SERVER['REMOTE_ADDR'])) die('Permission denied');
    

    【讨论】:

      【解决方案3】:

      我知道这是对 Drupal 的引用,但是他们很好地解释了 wget 调用中的每个参数。

      Drupal Cron Explanation

      如果你想要更通用的解释,你可以找到它here

      【讨论】:

      • 该链接说明: 0 * * * * wget -O - -q -t 1 example.com/cron.php 在上面的示例中,0 * * * * 表示任务应该发生的时间。第一个数字代表分钟 - 在这种情况下,在“零”分钟或小时的顶部。 (如果数字是 10,那么动作将在整点后 10 分钟发生。)其他数字分别代表小时、日、月和星期几。 * 是通配符,意思是“每次”。但是没有提到 -O - -q -t 1 是什么意思?
      【解决方案4】:

      试试这个并通过在 C 驱动器中创建一个带有 .bat 扩展名的文件夹来保存它。
      然后将此脚本的路径提供给任务调度程序。
      然后同样运行。

      C:\xampp\php\php-win.exe -fC:\xampp\htdocs\folder name\index.php controllername functionname
      

      【讨论】:

        猜你喜欢
        • 2016-09-16
        • 2015-06-03
        • 2021-09-07
        • 2016-05-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-11-04
        相关资源
        最近更新 更多