J'utilise le céleri d'une manière inhabituelle - Je crée un processus personnalisé lorsque le céleri est démarré, ce processus doit être exécuté tout le temps quand le céleri est en cours d'exécution. Celery travailleurs utilisent ce processus pour leurs tâches (les détails ne sont pas nécessaires)."celeryd stop" ne fonctionne pas
je lance le céleri de la ligne de commande et tout est ok:
celery -A celery_jobs.tasks.app worker -B --loglevel=warning
Mais quand j'utilise celeryd
pour daemonize le céleri, il n'y a aucun moyen de l'arrêter. La commande celeryd stop
essaie d'arrêter le céleri mais ne finit jamais. Quand je vérifie les arbres de processus dans les deux cas, il y a la différence - quand on exécute à partir de la ligne de commande, le parent est évidemment un processus de céleri (processus principal qui a des employés céleri comme enfants). Tuer (arrêter) le processus de céleri parent va arrêter tous les travailleurs céleri et mon processus personnalisé.
Mais lors de l'exécution avec celeryd
, mon processus personnalisé a parent /sbin/init
- et appelant celeryd stop
ne fonctionne pas - semble comme processus de céleri principal est en attente de quelque chose, ou est incapable d'arrêter mon processus personnalisé comme il est processus enfant de céleri .
Je ne sais pas grand-chose sur les processus et il n'est pas facile de trouver des informations, car je ne sais pas ce que je devrais rechercher, donc tous les conseils sont appréciés.
J'ai accepté cette réponse car je considère cette solution plus propre. – misoK