如何停止芹菜加工



我在Ubuntu EC2节点上有一个Django项目,我一直在用它来设置一个使用Celery的异步。

我和文档一起关注这一点。

我已经能够在命令行上完成一项基本任务,使用:

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

启动一个工人。此后,我对Python进行了一些更改,但意识到我需要重新启动一个工作程序。

从命令行,我尝试过:

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

但是我可以看到工人还在跑步。

我怎样才能杀死它?

编辑:

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

编辑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

在终端中尝试此操作

ps aux|grep 'celery worker'

你会看到这样的

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

然后通过终止进程id

sudo kill -9 process_id # here 29042

如果你有多个进程,那么你必须使用上面的kill命令和杀死所有进程id

sudo kill -9 id1 id2 id3 ...

来自芹菜博士

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

或者,如果您正在运行celeryd

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

注意

如果您在supervisor中运行celery,即使终止进程,它也会自动重新启动(如果主管脚本中的autorestart=True)。

pkill -f "celery worker"

易于通过字符串模式终止进程

如果芹菜工人在您无法访问的机器上运行,您可以使用celery"远程控制";通过代理发送的消息来控制工作人员。

celery control shutdown

这将立即杀死所有工作人员。根据您的设置,您可能必须使用-A myProject,就像Django一样。

此处提供文档。

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

这一个与之前提出的非常相似,但由于避免了在尝试终止grep进程时显示的错误,因此进行了改进。。

如果有人想以编程方式关闭他们的芹菜应用程序,也可以在python中使用以下方法:celery_app.control.shutdown()

相关内容

  • 没有找到相关文章

最新更新