0
我在看芹菜的http回調任務 - http://celeryproject.org/docs/userguide/remote-tasks.html。當遠程終端可用時,它們工作得不錯 - 但是當它不可用時,我希望它重試(按照重試策略) - 或者即使遠程終端返回故障。目前看來這是一個錯誤,任務被忽略。重試與芹菜Http回調任務
任何想法?
我在看芹菜的http回調任務 - http://celeryproject.org/docs/userguide/remote-tasks.html。當遠程終端可用時,它們工作得不錯 - 但是當它不可用時,我希望它重試(按照重試策略) - 或者即使遠程終端返回故障。目前看來這是一個錯誤,任務被忽略。重試與芹菜Http回調任務
任何想法?
你應該能夠定義像你的任務:
class RemoteCall(Task):
default_retry_delay = 30 * 60 # retry in 30 minutes
def Run(self, arg, **kwargs):
try:
res = URL("http://example.com/").get_async(arg)
except (InvalidResponseError, RemoteExecuteError), exc:
self.retry([arg], exc=exc, *kwargs)
這將繼續努力,它以MAX_RETRIES嘗試,每30分鐘一次。
我可能會被誤認爲 - 但是當端點不在那裏時,get_async沒有返回錯誤 - 所以它不會觸發該重試? (我可能弄錯了,還在我的腦子裏跑來跑去)。所以要使用這個 - 我會(在「客戶端」)調用RemoteCall()。delay()? –