【发布时间】:2020-04-19 22:51:16
【问题描述】:
我有一个每 5 小时运行一次的 cron 作业。它调用 PHP 脚本,该脚本将调用外部 API 来同步一些数据。
问题是有时我的 API 超时,作业会失败。
是否有任何机制让 cron 选项卡自动重试或自动恢复失败的作业?
我尝试做额外的工作,并在出现任何故障时手动调用它。
这样做的最佳方法是什么?
【问题讨论】:
-
更频繁地运行您的脚本并以某种方式检查 -
if (last call failed or 5 hours passed) { doStuff() }。 -
严格来说不是一个答案,因为它与 cron 无关,但您可以将 cron 作业迁移到 systemd 计时器:wiki.archlinux.org/title/Systemd/Timers#As_a_cron_replacement。 Systemd 计时器的重要属性是它们只是按计划运行的 systemd 服务,并且服务可以在失败时自动重启:freedesktop.org/software/systemd/man/…