Centos7

防止失敗/中斷的 cronjob 重試

  • May 7, 2021

我有一個 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 的參數,以便我可以從內部限製作業?

我意識到這不是最好的解決方法,因為無論腳本在做什麼都可能搞砸,但在腳本所有者修復它之前,我必須有一些限制它的方法。

閱讀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

引用自:https://serverfault.com/questions/1062111