运行 PHP 的 Cron 作业,它运行另一个 PHP

Posted

技术标签:

【中文标题】运行 PHP 的 Cron 作业,它运行另一个 PHP【英文标题】:Cron job to run PHP, that runs another PHP 【发布时间】:2018-05-06 12:59:25 【问题描述】:

我有一个通过 CRON 作业运行服务器端的 php 脚本。它运行得很好,但我需要它每 10 秒运行一次,而不是 cron 的限制为 60 秒。 我可以编写另一个“Timer.PHP”,它会调用/运行 UPDATE.PHP,并让 Timer.php 循环并休眠给我 10 秒的更新时间吗? 然后我可以让 cron 每 2 分钟运行一次 Timer.php。

当前的 cron 作业是: 卷曲-shttp://www.mysebsite.com/template/update/update.php?password=pass 我不确定以下几点: 1)这可能吗? 2) 语法正确吗?

有人建议让它循环 11 次(每个循环间隔 10 秒)然后停止,直到 cron 再次调用它。他们的想法是给它 10 秒的停机时间,以防止 cron 在前一个停止执行之前再次启动。

【问题讨论】:

见:askubuntu.com/q/800/459652 【参考方案1】:

如果您想将其作为 cron 作业运行,请使用 php sleep() 函数。 循环运行 5 次,执行后将脚本休眠 10 秒。例如

<?php

for ($x = 0; $x < 5; $x++) 
    // Execute your code
    sleep(10);


?>

这不是一个完美的解决方案,但可以正常工作。

【讨论】:

有没有更好的使用方法? 是的,您可以将脚本作为后台进程运行。这样您就可以完全控制它。 我也一直在看这个帖子:***.com/questions/9619362/… 这让我更加困惑。这是在托管服务器上运行的,所以我无法在后台控制事情。 如果你在共享主机上,你应该使用睡眠方法,因为你不能创建后台进程。只需将您的更新代码放在一个循环中即可。它会正常工作的。 我正在使用:【参考方案2】:

在多次失败尝试后,我决定编辑 cron 作业当前正确执行的实际 PHP 文件会更简单。 我将弄清楚如何在 10 秒的睡眠中循环 6 次。 这将使其运行 6 次,延迟 10 秒。然后 cron 可以再次重新启动脚本。

感谢大家尝试帮助另一个新手 鲍勃

【讨论】:

【参考方案3】:

我最终做了 6 个 cron 作业,其中 5 个内置了睡眠。

1) 正常运行 2) 睡眠 10; 3)睡眠20; 4)睡眠30; 5)睡眠40; 6) 睡眠 50;

幸运的是,我的托管服务器站点允许这样做。 该脚本需要大约 2 秒才能运行。到目前为止已经运行了六个多小时,没有任何错误。 可能不是最迷人的解决方案,但它确实有效。

【讨论】:

以上是关于运行 PHP 的 Cron 作业,它运行另一个 PHP的主要内容,如果未能解决你的问题,请参考以下文章

cron 作业在 cpanel 中无法正常工作

PHP 可以检测它是从 cron 作业还是从命令行运行?

在 cpanel 中使用 cron 作业运行 php 脚本

在 PHP 脚本上运行 Cron 作业,在 Windows 的本地主机上

记录在 cron 作业中运行的 curl 的返回

PHP:要求路径不适用于 cron 作业?