@mx6001

Почему после запуска Celery не возобновляет невыполненную задачу?

Отправляю через delay задачу и ставлю в ней sleep(20) в конце пишу флаг в БД.
После запуска(вижу что Celery начал выполнять) сразу убиваю Celery(консоль закрываю и он SIGKILL делает), потом запускаю заново но он не выполняет эту задачу заново. В чем может быть причина? Ведь он не завершил выполнение задачи.

app = Celery('tasks', broker='pyamqp://guest@localhost//')

@app.task
def add():
    time.sleep(20)
    # Здесь код вставки в ДБ


Запуск
tasks.add.delay()
  • Вопрос задан
  • 280 просмотров
Решения вопроса 1
zenwalker
@zenwalker
0xABADBABE
Не понимаю, с чего вы взяли, что задача должна продолжить выполнение. Воркер вытащил задачу из очереди. Если после этого он внезапно умер, обратно в очередь она не вернется.

Про правильную остановку воркеров, чтобы они не умирали посреди выполнения задач, читайте в доках: docs.celeryproject.org/en/latest/userguide/workers...
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы