防止失败/中断的 cronjob 重试

防止失败/中断的 cronjob 重试

我有一个 cronjob(在 CentOS 服务器上),如下所示:

20 3 * * * wget -qO- "http://example.com/mycronfile.php?parama=1&paramb=2&paramc=3" > /dev/null 2>&1

PHP 脚本托管在本地(在运行 cronjob 的同一台服务器上),我对其内容或它应该做的事情没有任何影响。

我注意到该脚本有时会占用大量资源,有时需要很长时间才能完成(30-45 分钟)。有时它会被中断(执行时间用完或可用资源耗尽),有时它会很快完成(4-5 分钟)。

当时间/资源耗尽时,就会出现问题 - 在这种情况下,cronjob 会重新启动。如果第一次无法完成,我该如何设置它以便可以重试一次,并且只能重试一次?是否可以更改运行 cronjob 的参数,以便我可以从内部限制该作业?

我意识到这不是解决问题的最佳方法,因为无论脚本做什么都可能被搞乱,但是在脚本的所有者修复它之前,我必须采取某种方式来限制它。

答案1

阅读后wGet 文档(RTFM 和所有这些),我添加了一个--tries=2,解决了我的问题。这样,我的 cron 如下所示:

20 3 * * * wget -qO- --tries=2 "http://example.com/mycronfile.php?parama=1&paramb=2&paramc=3" > /dev/null 2>&1

相关内容