为多个时间范围设置PHP cronjob

时间:2019-04-24 10:40:56

标签: php cron

我需要将一个PHP脚本设置为每晚晚上8点至晚上9点之间每5分钟运行一次。

我对cronjob的理解是它们以固定的时间间隔运行,例如每天一次,每周一次等。

我需要的是在特定时间段(晚上8点至晚上9点)运行常规cronjob(每5分钟一次)的一种方法。运行的脚本是相同的脚本。

想法

  • 通过cronjob广告循环在晚上8点运行一个PHP脚本,该代码在计时器循环内运行,以便该脚本在一个小时内持续运行(使用sleep)。在我看来,这是一个糟糕的解决方案。效率低下。

  • 第一次运行辅助cronjob触发器,因此在晚上8点运行cronjob,然后运行第二个cronjob,每300秒运行一次以调用脚本。 这有可能吗?

  • 在每个所需的时间间隔安装多个重复的cronjob,因此一个在20:00,一个在20:05,一个在20:10、20:15,等等。这不是很干的编程。

  • 24/7每5分钟运行一次cronjob,并在时间不在晚上8点至晚上9点之间时退出PHP脚本。这似乎很浪费/效率低下,因为95%的cronjob脚本触发器将直接退出。

这些想法似乎都没有真正有效地满足要求。我有错过的选择吗?

绝对要清楚:

我已经使用了cronjobs,但是它们运行在单间隔时间范围内。我已经在这里和其他地方阅读了有关cronjobs的所有内容,并且找不到有关多间隔时间范围的任何指导。

我正在寻找可以在两个时间范围内运行的东西,而不仅仅是一个时间范围!

问题: 在两个时间点(本例中为晚上8点和晚上9点)之间每5分钟可以使用什么方法运行一个独立的PHP脚本?

1 个答案:

答案 0 :(得分:4)

通常,在发布此问题后,我会从this useful link找到解决方案

答案是:

*/5 20 * * * /usr/bin/php /www/virtual/username/cron.php 

*/520002000的时间之间每五分钟运行1小时。由于pointed out by Barmar,这意味着最终的cronjob执行将是2055。