Как заставить задачу сельдерея провалиться изнутри задачи?
В некоторых условиях я хочу, чтобы задача сельдерея провалилась из-за этой задачи. Я попробовал следующее:
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
Кажется, что состояние может быть изменено только во время выполнения задачи и после ее завершения - сельдерей меняет состояние на то, что он считает результатом (см.этот вопрос). Есть ли способ, не провалив задание, вызвав исключение, вернуть сельдерею, что задание не выполнено?