我正在使用celery==4.1.0
和django-celery-beat==1.1.0
。
我正在用 Django 运行 gunicorn + 芹菜 + 兔子。
这是我用于创建节拍和工人的配置
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%。我尝试了不同的服务器设置,似乎不相关。
您为每个部署启动 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
rabbitmq 可能是高内存使用率的罪魁祸首。你能安全地重新启动兔子吗?
您还能确认重新启动后是否有预期的辅助角色数量吗?