php - 为多个时间范围设置 PHP cronjob

标签 php cron

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

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

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

想法

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

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

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

  • 每 5 分钟运行一次 cronjob 24/7,并在时间不在晚上 8 点到 9 点之间时提前退出 PHP 脚本。这看起来浪费/低效,因为 95% 的 cronjob 脚本触发器将直接退出。

这些想法似乎都不符合要求。我是否错过了一些选择?

绝对清楚:

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

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

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

最佳答案

典型的是,在发布这个问题后,我从 this useful link 找到了解决方案

答案是:

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

*/520002000 + 1 小时之间每五分钟运行一次。如pointed out by Barmar这意味着最终的 cronjob 执行将为 2055。

关于php - 为多个时间范围设置 PHP cronjob,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55828147/

相关文章:

git pull 自动通过 crontab

php - 限制某些用户的访问

PHP OOP/MVC 方法

php mysql,从多个数据库中选择数据

php - 自定义 Laravel Artisan 命令无法通过 cron 作业使用

php - 持续运行等待视频转码的 PHP 脚本

bash - 如何创建 cron 作业每分钟运行 shell 脚本

php - 获取最后插入 id 并将数组或多个值保存到 mysql 数据库 codeigniter

php - mysql无法显示中文

linux - 如何为 cronjob 添加秒数