我通过redis运行芹菜。 我以这样的方式开始我的工作:
celery multi start worker1 -A mypackage.tasks.tasks celery multi v3.1.18 (Cipater) > Starting nodes... > [email protected]: OK
我这样杀了它:
celery multi kill worker1 celery multi v3.1.18 (Cipater) > [email protected]: DOWN
但工人实际上还在跑步。 我不能再次启动工人:
celery multi start worker1 -A mypackage.tasks.tasks celery multi v3.1.18 (Cipater) > Starting nodes... ERROR: Pidfile (worker1.pid) already exists. Seems we're already running? (pid: 29369) > [email protected]: OK
如果我杀了这个过程,一切都好:
kill 29369
但是这太麻烦了:我需要知道PID。 如何真正用芹菜命令行工具杀死工人?
celery multi指挥无法阻止工人。 你可以从PID文件或从PS输出得到PID,例如
ps auxww | grep '[c]elery worker' | awk '{print $2}' | xargs kill
要么
kill $(cat /path/to/worker.pid)