为什么 Celery 会劝阻工人并一起殴打?

zer*_*dge 5 celery celerybeat

从芹菜帮助功能:

> celery worker -h

...

Embedded Beat Options:
  -B, --beat            Also run the celery beat periodic task scheduler. Please note that there must only be
                        one instance of this service. .. note:: -B is meant to be used for development
                        purposes. For production environment, you need to start celery beat separately.
Run Code Online (Sandbox Code Playgroud)

这也出现在文档中

您还可以通过启用 worker -B 选项将 beat 嵌入到 worker 中,如果您永远不会运行多个 worker 节点,这会很方便,但它并不常用,因此不建议用于生产用途:

celery -A proj worker -B

但实际上并没有解释为什么在生产中使用它是“糟糕的”。会喜欢一些见解。

gus*_*ong 7

--beat选项将与工作人员一起启动节拍调度程序。

但你只需要一个节拍调度器?

在生产环境中,您通常有不止一个工人在运行。使用--beat选项将是一场灾难。

例如:您在每天上午 12 点安排了一个活动。

如果您开始两拍流程,则该活动将在每天上午 12 点运行两次。

如果您永远不会运行多个工作节点,那么--beat选择就好了。