![cronjob 何时真正开始?](https://linux22.com/image/75539/cronjob%20%E4%BD%95%E6%97%B6%E7%9C%9F%E6%AD%A3%E5%BC%80%E5%A7%8B%EF%BC%9F.png)
我的问题来自我在看到每分钟的 cronjob 像这样运行时所做的观察:
12:00:15 (cron started)
12:01:20 (cron started)
12:02:02 (cron started)
.
.
.
看起来 cron 并不是每分钟(每 60 秒)运行一次。该 cron 实际上运行一个 php 脚本,该脚本执行一个 mysql 查询来选择和更新数据库。不到 2 秒即可完成。
为每分钟安排的 cronjob 应该在该分钟的开始(12:00:00)运行,还是会在该分钟的任何其他特定秒运行?
系统负载与此有关系吗?有什么方法可以确保 cron 从一分钟开始就启动吗?
答案1
你所观察到的情况一点也不令我感到惊讶,cron
它并不精确到秒。您可以相信*它会在您编程运行的那一分钟内运行作业,但您不应该真正依赖更高的精度。
如果您需要在精确的时刻开始工作,则应该提前启动它,并在脚本中等待该时刻的到来。由于 1 分钟是 所支持的最小间隔cron
,我会考虑不同的选项来启动它(例如 Python 脚本)。
(*) 请参阅下面的评论