web-dev-qa-db-fra.com

Comment arrêter le processus de travail du céleri

J'ai un projet Django sur un nœud Ubuntu EC2, que j'ai utilisé pour configurer un asynchrone en utilisant Celery.

Je suis this avec les documents.

J'ai pu obtenir une tâche de base en ligne de commande, en utilisant:

(env1)ubuntu@ip-172-31-22-65:~/projects/tp$ celery --app=myproject.celery:app worker --loglevel=INFO

Pour démarrer un travailleur. J'ai depuis apporté quelques modifications au Python, mais j'ai réalisé que je devais redémarrer un travailleur.

Depuis 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?

modifier:

(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).

modifier 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
26
user61629

Essayez ceci dans le terminal

ps aux|grep 'celery worker'

Vous verrez comme ça

username  29042  0.0  0.6  23216 14356 pts/1    S+   00:18   0:01 /bin/celery worker ...

Ensuite, tuez l'ID de processus par

Sudo kill -9 process_id # here 29042

Si vous avez plusieurs processus, vous devez tuer tous les identifiants de processus en utilisant ci-dessus kill commmand

Sudo kill -9 id1 id2 id3 ...

Du doc ​​céleri

ps auxww | grep 'celery worker' | awk '{print $2}' | xargs kill -9

OU si vous exécutez celeryd

ps auxww | grep celeryd | awk '{print $2}' | xargs kill -9

Remarque

Si vous exécutez celery dans supervisor, même si vous tuez le processus, il redémarre automatiquement (si autorestart=True dans le script du superviseur).

54
itzMEonTV
pkill -f "celery worker"

processus facile à tuer par des modèles de chaînes

26
alan_wang

celery -A proj control shutdown

Modifié, incrémentant un peu.

Vous devez utiliser cette commande à partir de la racine de votre projet, le "proj" est le nom de votre projet, par exemple si votre projet Django s'appelle DjangoApp la commande devrait ressembler à ceci

celery -a DjangApp control shutdown

cela devrait/arrêtera votre travailleur du céleri du projet

13
Paulo Peres Junior
ps auxww | grep 'celery worker' | grep -v " grep " | awk '{print $2}' | xargs kill -9

celui-ci est très similaire à celui présenté précédemment mais amélioré car évitez l'erreur qui s'affiche lorsque vous tentez de tuer le processus grep.

0
user2735883