Повторить с сельдереем Http Callback Tasks - PullRequest
0 голосов
/ 04 июля 2011

Я смотрю на задачи http callback - http://celeryproject.org/docs/userguide/remote-tasks.html в сельдерее. Они работают достаточно хорошо, когда удаленная конечная точка доступна, но когда она недоступна, я бы хотел, чтобы она повторила попытку (согласно политике повторных попыток), или даже если удаленная конечная точка возвращает ошибку. на данный момент это кажется ошибкой и задача игнорируется.

Есть идеи?

1 Ответ

1 голос
/ 04 июля 2011

Вы должны быть в состоянии определить вашу задачу как:

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 минут.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...