Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在Django部署期间重新启动芹菜节拍和工人_Python_Django_Celery - Fatal编程技术网

Python 在Django部署期间重新启动芹菜节拍和工人

Python 在Django部署期间重新启动芹菜节拍和工人,python,django,celery,Python,Django,Celery,我使用的是芹菜==4.1.0和django芹菜节拍==1.1.0 我和Django一起经营gunicorn+芹菜+拉比MQ 这是我创建beat和worker的配置 celery -A myproject beat -l info -f /var/log/celery/celery.log --detach celery -A myproject worker -l info -f /var/log/celery/celery.log --detach 在Django部署期间,我将执行以下操作:

我使用的是
芹菜==4.1.0
django芹菜节拍==1.1.0

我和Django一起经营gunicorn+芹菜+拉比MQ

这是我创建beat和worker的配置

celery -A myproject beat -l info -f /var/log/celery/celery.log --detach
celery -A myproject worker -l info -f /var/log/celery/celery.log --detach
在Django部署期间,我将执行以下操作:

rm -f celerybeat.pid
rm -f celeryd.pid
celery -A myproject beat -l info -f /var/log/celery/celery.log --detach
celery -A myproject worker -l info -f /var/log/celery/celery.log --detach
service nginx restart
service gunicorn stop
sleep 1
service gunicorn start

我想重新启动芹菜节拍和工人,这似乎是逻辑工作。但我注意到芹菜在部署期间开始使用越来越多的内存,在几次部署之后,我达到了100%的内存使用率。我尝试了不同的服务器设置,但似乎没有关系。

rabbitmq可能是内存使用率高的原因。你能安全地重启兔子吗


您还可以确认重新启动后是否有预期的工作人员数量吗?

rabbitmq可能是内存使用率高的原因。你能安全地重启兔子吗


您还可以确认重新启动后是否有预期的工作线程数吗?

您将为每次部署启动2个新工作线程,而不会停止/杀死以前的工作线程

在部署过程中,使用

kill -9 $PID
kill -9 `cat /var/run/myProcess.pid`
或者,你也可以用一根绳子杀死所有的工人

pkill -9 celery
现在你可以像往常一样开始工作了

celery -A myproject beat -l info -f /var/log/celery/celery.log --detach
celery -A myproject worker -l info -f /var/log/celery/celery.log --detach

每次部署都将启动2个新工作进程,而不会停止/杀死以前的工作进程

在部署过程中,使用

kill -9 $PID
kill -9 `cat /var/run/myProcess.pid`
或者,你也可以用一根绳子杀死所有的工人

pkill -9 celery
现在你可以像往常一样开始工作了

celery -A myproject beat -l info -f /var/log/celery/celery.log --detach
celery -A myproject worker -l info -f /var/log/celery/celery.log --detach

使用
kill-9
的建议充其量也值得怀疑。套用Randal L.Schwartz的话,如果没有
-9
,进程真的不会死,那么它就是有缺陷的,应该从系统中删除;如果你知道自己在做什么,除非你真的必须使用
-9
。使用
kill-9
的建议充其量也不可靠。套用Randal L.Schwartz的话,如果没有
-9
,进程真的不会死,那么它就是有缺陷的,应该从系统中删除;如果你知道你在做什么,你就不要使用
-9
,除非你真的必须这么做,。