[英]Restart celery beat and worker during Django deployment
我正在使用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
我想重新啟動celery beat和worker,看來這種邏輯有效。 但是我注意到celery在部署期間開始使用越來越多的內存,在幾次部署之后,我的內存使用率達到了100%。 我嘗試了不同的服務器設置,但似乎無關。
Rabbitmq可能歸因於高內存使用率。 您可以安全地重新啟動Rabbit嗎?
您還可以確認重新啟動后是否有預期的工人數量?
您將為每個部署啟動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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.