Me gustaría poder cancelar una tarea que se ejecuta desde una cola de Celery (usando rabbitMQ). Llamo a la tarea usandoAnular una tarea en ejecución en Apio dentro de django
task_id = AsyncBoot.apply_async(args=[name], name=name, connect_timeout=3)
donde AsyncBoot es una tarea definida.
Puedo obtener la identificación de la tarea (suponiendo que sea la cadena larga que devuelve apply_async
) y almacenarla en una base de datos, pero no estoy seguro de cómo llamar a un método de cancelación. Veo cómo hacer que los métodos abortable con la clase de tareas Abortables pero si sólo tengo la cadena id-tarea, Como llamar en .abort() en la tarea? Gracias.
Vale la pena señalar que los documentos de apio dicen: "esta clase sólo funcionará con los backends de bases de datos." http://docs.celeryproject.org/en/latest/reference/celery.contrib.abortable.html?highlight=abort#celery.contrib.abortable – dgorissen