В некоторых условиях я хочу сделать задачу сельдерея неудачной из этой задачи. Я попробовал следующее:
from celery.task import task
from celery import states
@task()
def run_simulation():
if some_condition:
run_simulation.update_state(state=states.FAILURE)
return False
Однако задача все еще сообщает, что она преуспела:
Задача sim.tasks.run_simulation [9235e3a7-c6d2-4219-bbc7-acf65c816e65] преуспел в 1.17847704887s: False
Кажется, что состояние может быть изменено только во время выполнения задачи и после его завершения - сельдерей изменяет состояние на то, что он считает результатом (см. этот вопрос). Есть ли какой-либо способ, не выполняя задачу, создавая исключение, чтобы вернуть сельдерей, что задача не удалась?