我应该使用attach-daemon或smart-attach守护进程使用UWSGI自动启动芹菜(并轻松更新任务)

Cho*_*abu 5 django celery uwsgi server

首先 - 我知道UWSGI建议使用 smart-attach-daemon

来自:http://uwsgi-docs.readthedocs.io/en/latest/AttachingDaemons.html

Managing celery:

[uwsgi]
master = true
socket = :3031
smart-attach-daemon = /tmp/celery.pid celery -A tasks worker --pidfile=/tmp/celery.pid
Run Code Online (Sandbox Code Playgroud)

但是,当我将更新推送到服务器时,Celery任务似乎没有更新 - 为了实现这一点,似乎我已经做了问题killall celery- 通过使用attach-daemon启动它似乎实际上是自动化的?

我在这里遗漏了什么,有没有比杀死芹菜实例或使用更好的解决方案attach-daemon

atn*_*atn 4

您最好使用attach-daemon,因为smart-attach-daemon这意味着您将自行管理智能守护进程的重新启动。

从 uwsgi 2.0 开始,还有“attach-daemon2”选项touch

  • @Chozabu“这个(`smart-attach-daemon`)是需要更长持久性的进程的最佳选择,而**残酷的杀戮**可能意味着数据库等数据的丢失。” 因此,这意味着“attach-daemon”涉及残酷的杀戮,这可能会导致 Celery 任务中断(而不是等待正在运行的任务完成然后退出的热关闭)。 (2认同)