用芹菜Http回调任务重试

时间:2011-07-04 06:44:18

标签: python django celery

我在芹菜中查看http回调任务 - http://celeryproject.org/docs/userguide/remote-tasks.html。当远程端点可用时,它们运行良好 - 但是当它不可用时,我希望它重试(根据重试策略) - 或者即使远程端点返回失败。目前它似乎是一个错误,任务被忽略。

有什么想法吗?

1 个答案:

答案 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分钟一次。