Бесконечный запрос самоповтора с обратным отсчетом, если условия не выполнены - PullRequest
0 голосов
/ 01 августа 2020

Мне нужно запустить задачу и выполнить какие-то действия, повторить попытку, если какие-то условия не выполняются. Задачу следует повторять бесконечно, и повторные попытки прекращаются только при соблюдении условий.

class MyCustomException(Exception):
    pass


class MyCustomTask(Task):
    def run(self, *args, **kwargs):
        try:
            if not is_in_condition():
                raise MyCustomException
        except MyCustomCondition:
            do_actions() # execution time about 3 secs.
            MyCustomTask.apply_async(countdown=60)

В этом случае у меня есть немедленное следующее выполнение задачи без обратного отсчета.

Я пробовал это тоже:

       # the same code
       except MyCustomCondition as exc:
           do_actions()
           raise self.retry(exc=exc, countdown=60, max_retries=-1)

В этом случае у меня есть только одно выполнение do_actions, а затем оно падает с MyCustomException

Также я пробовал параметр eta как здесь, результат тот же. Настроить нетерпеливое время можно.

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