Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to stop celery worker process

I have a Django project on an Ubuntu EC2 node, which I have been using to set up an asynchronous using Celery.

I am following this along with the docs.

I've been able to get a basic task working at the command line, using:

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

To start a worker. I have since made some changes to the Python, but realized that I need to restart a worker.

From the command line, I've tried:

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

But I can see that the worker is still running.

How can I kill it?

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 
like image 765
user1592380 Avatar asked Mar 27 '15 17:03

user1592380


People also ask

How do you stop a Celery worker?

In this setup, when running a celery worker with --pool solo option, kill -KILL <pid> stops worker immediately.

How do I check the status of my Celery worker?

celery -A yourproject. app inspect status will give the status of your workers. celery -A yourproject. app inspect active will give you list of tasks currently running, etc.

What is a soft time limit?

The soft time limit allows the task to catch an exception to clean up before it is killed: the hard timeout isn't catch-able and force terminates the task.


1 Answers

Try this in terminal

ps aux|grep 'celery worker' 

You will see like this

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

Then kill process id by

sudo kill -9 process_id # here 29042 

If you have multiple processes, then you have to kill all process id using above kill commmand

sudo kill -9 id1 id2 id3 ... 

From the celery doc

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

OR if you are running celeryd

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

Note

If you are running celery in supervisor, even though kill the process, it automatically restarts(if autorestart=True in supervisor script).

like image 122
itzMEonTV Avatar answered Sep 20 '22 12:09

itzMEonTV