我在芹菜中查看http回调任务 - http://celeryproject.org/docs/userguide/remote-tasks.html。当远程端点可用时,它们运行良好 - 但是当它不可用时,我希望它重试(根据重试策略) - 或者即使远程端点返回失败。目前它似乎是一个错误,任务被忽略。
有什么想法吗?
答案 0 :(得分:1)
您应该能够像以下一样定义任务:
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分钟一次。