【问题标题】:Hourly cronjob unwanted skips每小时 cronjob 不需要的跳过
【发布时间】:2015-08-03 11:33:52
【问题描述】:

我有一个计划每小时执行 php 文件的 cronjob。它通常可以正常工作,但有时会随机跳过几个小时。今天早上它这样做了:

[03-Aug-2015 00:00:02 America/Denver] runHourly triggered
[03-Aug-2015 01:00:03 America/Denver] runHourly triggered
[03-Aug-2015 02:00:02 America/Denver] runHourly triggered
[03-Aug-2015 05:02:25 America/Denver] runHourly triggered

之前从未连续跳过 3 个小时...

我无权检查任何 cronjob 日志,因为我正在使用我的共享主机面板来设置作业。

我已经为该问题输入了支持票,但我还能做些什么来确保它每小时运行一次吗?有没有 cronjobs 的替代品?这是什么原因造成的?

【问题讨论】:

  • 清晨是经典的服务器维护时间。可能想检查是否有任何冲突的作业,例如重新启动(我不太可能知道),这会造成干扰。
  • 我只有一份工作;我想我会向系统管理员询问其他有冲突的工作吗?
  • 我不知道您的管理员设置,所以不知道如何找到这个。
  • 我也没有,这就是为什么我要问我是否会问这个问题(即是否存在冲突的工作)。

标签: php cron


【解决方案1】:

我以前也遇到过这类问题。最好的解决方案是,做另一个 cron 工作。

1)。当您每小时执行一次 cron 作业时,请使其在表中插入一行。 (制作一个监控 cron 的表)

2)。做另一个 cron 工作。在原始 cron 作业 10 分钟后运行它。因此,假设您的主要作业在每小时开始运行,让第二个 cron 作业在 +10 分钟运行。所以 cron 作业 1 在 00:00 运行,而 cron 作业 2 在 00:10 运行。第二个 cron 作业检查应该由原始 cron 作业创建的行,如果索引不存在,则再次运行原始文件,如果存在,则删除该记录(该记录现在变得无用)

【讨论】:

  • 这对您来说有多成功?这是否消除了问题,或者仍然存在小时和十小时工作不解雇的时间?
  • 我实现了这个之后,到现在都没有任何问题。
猜你喜欢
  • 1970-01-01
  • 2010-11-27
  • 1970-01-01
  • 2015-01-10
  • 1970-01-01
  • 2018-01-28
  • 1970-01-01
  • 2013-06-15
  • 1970-01-01
相关资源
最近更新 更多