/ / django celery termine les sous-processus de la tâche - python, django, sous-processus, tâche, céleri

django céleri terminer les sous-processus de la tâche - python, django, sous-processus, tâche, céleri

Ceci est une question de suivi à ma question précédente: Annuler une tâche déjà en cours d'exécution avec Celery?

celery.task.control.revoke({task_id}, terminate=True)

tue effectivement mon travailleur exécutant la tâche. J'ai maintenant le problème que ma tâche exécute des sous-processus qui ne meurent pas lorsque la tâche est révoquée.

Ce post par dmarkey http://dmarkey.com/wordpress/2011/09/07/killing-child-processes-of-celery-tasks-on-a-timeout/ C’est ce qui se rapproche le plus de ce que je vois de ce que je veux faire, sauf que je ne veux pas tuer à l’expiration du délai d’attente, mais plutôt lorsque je révoque () avec le task_id.

Semblant que tout ce que j'ai est le (String) task_id,est-il possible de tuer de tels sous-processus? Merci pour votre aide - Je n’ai pas autant d’expérience que je le souhaiterais, naviguer dans la documentation est un défi!

Réponses:

3 pour la réponse № 1

Essayez de définir un rappel pour on_revoked qui tue les processus enfants de la tâche.