Comment arrêter le processus de travail céleri
J'ai un projet Django sur une Ubuntu EC2 nœud, dont j'ai été l'aide pour configurer un asynchrone à l'aide de Celery
.
Je suis cette avec les docs.
J'ai été en mesure d'obtenir une tâche de base de travail à la ligne de commande, à l'aide de:
(env1)ubuntu@ip-172-31-22-65:~/projects/tp$ celery --app=myproject.celery:app worker --loglevel=INFO
Pour démarrer un travailleur. Depuis, j'ai fait quelques changements pour le Python, mais s'est rendu compte que j'ai besoin de redémarrer un travailleur.
À partir de la ligne de commande, j'ai essayé:
ps auxww | grep 'celery worker' | awk '{print $2}' | xargs kill -9
Mais je peux voir que le travailleur est toujours en cours d'exécution.
Comment puis-je le tuer?
edit:
(env1)ubuntu@ip-172-31-22-65:~/projects/tp$ sudo ps auxww | grep celeryd | grep -v "grep" | awk '{print $2}' | sudo xargs kill -HUP
kill: invalid argument H
Usage:
kill [options] <pid> [...]
Options:
<pid> [...] send signal to every <pid> listed
-<signal>, -s, --signal <signal>
specify the <signal> to be sent
-l, --list=[<signal>] list all signal names, or convert one to a name
-L, --table list all signal names in a nice table
-h, --help display this help and exit
-V, --version output version information and exit
For more details see kill(1).
edit 2:
(env1)ubuntu@ip-172-31-22-65:~/projects/tp$ ps aux|grep celery
ubuntu 9756 0.0 3.4 100868 35508 pts/6 S+ 15:49 0:07 /home/ubuntu/.virtualenvs/env1/bin/python3.4 /home/ubuntu/.virtualenvs/env1/bin/celery --app=tp.celery:app worker --loglevel=INFO
ubuntu 9760 0.0 3.9 255840 39852 pts/6 S+ 15:49 0:05 /home/ubuntu/.virtualenvs/env1/bin/python3.4 /home/ubuntu/.virtualenvs/env1/bin/celery --app=tp.celery:app worker --loglevel=INFO
ubuntu 12760 0.0 0.0 10464 932 pts/7 S+ 19:04 0:00 grep --color=auto celery
source d'informationauteur user61629
Vous devez vous connecter pour publier un commentaire.
Essayez ceci dans le terminal
Vous verrez comme ce
Puis tuer id de processus en
Si vous avez plusieurs processus, vous devez tuer tous les processus id ci-dessus en utilisant
kill
de commandeDu céleri doc
OU si vous exécutez
celeryd
Note
Si vous exécutez
celery
danssupervisor
même si tuer le processus, il redémarre automatiquement(siautorestart=True
au superviseur de script).facile de tuer des processus par les modèles de chaîne
celery -A proj control shutdown
Édité, incremeting un petit peu.
Vous devez utiliser cette commande à partir de la racine de votre projet, le "projet" est le nom de votre projet, par exemple, si votre projet Django est appelé DjangoApp la commande devrait ressembler à ceci
celery -a DjangApp control shutdown
ce devrait arrêter votre céleri travailleur du projet