我正在使用celery==4.1.0
和django-celery-beat==1.1.0
。
我正在和Django一起运行gunicorn + celery + rabbitmq。
这是我创建节拍和工作人员的配置
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%的内存使用率。我尝试了不同的服务器设置,似乎没有相关性。
答案 0 :(得分:1)
rabbitmq可能是高内存使用的罪魁祸首。你能安全地重启兔子吗?
您还可以确认重启后是否有预期的工人数量?
答案 1 :(得分:1)
您为每个部署启动了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