【发布时间】:2021-04-13 14:47:06
【问题描述】:
我正在编写类似调度程序的代码(如果重要的话,在 PHP 中)并遇到了一件有趣的事情:重新调度重复性任务很容易,但是如果由于某种原因它运行得比原来晚得多怎么办应该吗?
例如,假设一个作业需要每小时运行一次,它的下一个计划运行是13.05.2021 18:00,但它运行在13.05.2021 20:00。现在正常的重新调度逻辑将采用原始调度时间并添加重复频率(在这种情况下为 1 小时),但这会使新时间 13.05.2021 19:00,这可能会导致运行此作业两次。从理论上讲,我们可以将时间用于“最后一次运行”,但它可以是 13.05.2021 20:03 之类的东西,这会产生新的时间 13.05.2021 21:03。
现在我的问题是:我们可以使用什么逻辑,以便在这种情况下下次是13.05.2021 21:00?我试过用谷歌搜索这样的东西,但找不到任何东西。而且我确实看到,例如,Windows 中的 Event Scheduler 确实以某种我想要的方式重新安排作业。
【问题讨论】:
-
您可以将分钟减少到最接近的小时...在重新设置时间表之前
标签: php datetime time scheduler