为多个时间帧设置 PHP cronjob



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

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

我需要的是在特定时间范围内(晚上 5 点到晚上 9 点)运行常规 cronjob(每 5 分钟)的某种方式。运行的脚本是相同的脚本。

想法

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

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

  • 在每个所需的时间间隔安装多个重复的 cronjob,例如一个在 20:00,一个在 20:05,一个在 20:10、20:15,依此类推。这不是非常干燥的编程。

  • 每 5 分钟 24/7 运行一次 cronjob,并在时间不在晚上 8 点到 9 点之间时提前退出 PHP 脚本。这似乎是浪费/低效的,因为 95% 的 cronjob 脚本触发器会简单地退出。

这些想法似乎都没有真正有效地符合要求。我错过了哪些选择?

要绝对清楚:

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

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

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

典型,在发布此问题后,我从这个有用的链接中找到了解决方案

答案是:

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

*/520002000+ 1 小时之间每五分钟运行一次。正如 Barmar 所指出的,这意味着最终的 cronjob 执行将是 2055 年。

最新更新