我一直在尋找幾天找到一個事實上的方式來處理芹菜任務中的錯誤。建議如何處理Celery任務代碼中的錯誤?
在芹菜文檔中,我們確實瞭解了retying tasks because of failure。
重要的是要注意,工作人員不知道崩潰,如果這樣做通常是一個不可恢復的錯誤,需要人爲干預(工人或任務代碼中的錯誤)。
...
因此,使用重試Python的錯誤,如果你的任務是冪等,如果需要的可靠性水平結合起來,與acks_late。
但是,如果我的任務由於錯誤的邏輯而存在錯誤,那麼盲目重試將無法解決問題。
在其他分佈式系統中,我使用了poison queue
來存儲消息,然後在bug修復後重新處理。用於路由的芹菜文檔非常強大,使我相信可以用Celery手動完成類似的方法。
是否有推薦的方法來處理芹菜?
您使用的是什麼消息代理? – 2013-04-07 23:42:28
@MichaelMior我目前正在使用'BROKER_BACKEND ='django'',並將在不久的將來使用'amqp'。我承認我仍然在學習芹菜和Django,所以我可能在這裏錯了,但我覺得我的問題是更理論和運輸不可知論。也許你可以擺脫一些光線? – 2013-04-08 00:17:50