簡體   English   中英

在Django部署期間重新啟動celery beat和worker

[英]Restart celery beat and worker during Django deployment

我正在使用celery==4.1.0django-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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM