我正试图在代码更改后通过遵循How to restart Celery gracefully without delaying tasks重新启动芹菜。基于此,我跑了:
(env1)ubuntu@ip-172-31-22-65:~/projects/tp$ ps aux|grep "celery"
ubuntu 2701 0.3 3.7 107788 37904 ? S 12:17 0:00 /home/ubuntu/.virtualenvs/env1/bin/python3.4 /home/ubuntu/.virtualenvs/env1/bin/celery --app=tp.celery:app worker --loglevel=INFO
ubuntu 2705 0.0 3.3 107120 34132 ? S 12:17 0:00 /home/ubuntu/.virtualenvs/env1/bin/python3.4 /home/ubuntu/.virtualenvs/env1/bin/celery --app=tp.celery:app worker --loglevel=INFO
ubuntu 2716 0.0 0.0 10460 932 pts/0 S+ 12:20 0:00 grep --color=auto celery
(env1)ubuntu@ip-172-31-22-65:~/projects/tp$ sudo kill -9 2701 2705
(env1)ubuntu@ip-172-31-22-65:~/projects/tp$ ps aux|grep "celery"
ubuntu 2720 16.3 3.7 107796 37908 ? S 12:25 0:00 /home/ubuntu/.virtualenvs/env1/bin/python3.4 /home/ubuntu/.virtualenvs/env1/bin/celery --app=tp.celery:app worker --loglevel=INFO
ubuntu 2724 0.0 3.3 107144 34084 ? S 12:25 0:00 /home/ubuntu/.virtualenvs/env1/bin/python3.4 /home/ubuntu/.virtualenvs/env1/bin/celery --app=tp.celery:app worker --loglevel=INFO
ubuntu 2726 0.0 0.0 10460 932 pts/0 S+ 12:25 0:00 grep --color=auto celery我不明白这是怎么回事。似乎两个新的芹菜工人过程出现后,我杀了前两个。
我做错了什么?
发布于 2015-04-03 14:43:58
我看不出你做错事的证据。
芹菜是一种过程的集合。最重要的是要有一位主管,让一定数量的工人随时准备好回答请求。
工人是一次性的,但主管不知道工人在做什么。当员工离开时,主管收到一个信号并启动一个新的信号。就这样。
如果您更改了配置,主管可以重新配置它自己(如果您对它进行了这样的配置!),但是工作人员并没有监视该配置。他们只有在出生的时候才会被配置。
你所做的“杀死”是杀死那些工人,并期望替代工人有你想要的设置,当他们出生。
要求主管停止自身和员工,然后重新加载,然后重新启动,可能会留下几秒钟的时间,没有任何请求得到答复。据我所知,这是supervisorctl的好处。
所以,你告诉我们的任何事情都没有什么问题。当然,你应该期待工人被替换。
https://stackoverflow.com/questions/29432230
复制相似问题