En algunas condiciones, quiero hacer que una tarea de apio falle dentro de esa tarea. He intentado lo siguiente:Cómo hacer que una tarea de apio falle dentro de la tarea?
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
Sin embargo, la tarea continúa informando de haber tenido éxito:
sim.tasks.run_simulation Tarea [9235e3a7-c6d2-4219-BBC7-acf65c816e65] lograron 1.17847704887s : Falso
parece que el estado sólo puede ser modificada mientras que la tarea está en ejecución y una vez que se haya completado - apio cambia el estado a lo que estime es el resultado (consulte this question). ¿Hay alguna manera, sin fallar la tarea al hacer una excepción, de hacer que el apio regrese que la tarea ha fallado?
¿Ha tratado de lanzar una excepción desde el interior de su código? – hymloth
@hymloth Levantar una excepción hace que la tarea falle, lo que incluye enviarme un correo electrónico cada vez que eso sucede, algo que me gustaría evitar. Perdón por no estar claro, he cambiado la pregunta ahora. – Meilo