回答问题

禁用八卦、交际和心跳对我的芹菜工人有什么影响?

为了减少发送到 CloudAMQP 的消息数量以保持在免费计划内,我决定遵循这些建议。因此,我使用了选项--without-gossip --without-mingle --without-heartbeat。从那时起,我在所有 celery 项目中默认使用这些选项,但我不确定是否有任何我不知道的副作用。

请注意:

  • 我们现在转移到了一个 Redis 代理,并且对发送到代理的消息数量没有太多限制

  • 我们有几个实例运行多个具有多个队列的芹菜工人

Answers

这是基本的文档没有给我们太多信息

心跳

与工作人员和代理之间的通信有关(在您的情况下,代理是 CloudAMQP)。见解释

使用--without-heartbeat,工作人员不会发送心跳事件

交融

它只在启动时向其他工作人员询问“逻辑时钟”和“撤销的任务”。

取自whatsnew-3.1

工作人员现在将尝试与同一集群中的其他工作人员同步。

同步数据目前包括撤销的任务和逻辑时钟。

这仅在启动时发生,并导致一秒钟的启动延迟以收集其他工作人员的广播响应。

您可以使用 --without-mingle 参数禁用此引导步骤。

另见文档

闲话

工人向所有其他工人发送事件,这目前用于“时钟同步”,但也可以编写自己的事件处理程序,例如on_node_join,参见文档

取自whatsnew-3.1

工作人员现在被动地订阅与工作人员相关的事件,例如心跳。

这意味着一个工作人员知道其他工作人员在做什么,并且可以检测他们是否下线。目前这仅用于时钟同步,但未来添加的可能性很多,您可以编写利用这一点的扩展。

一些想法包括共识协议、将任务重新路由到最佳工作人员(基于资源使用或数据位置)或在工作人员崩溃时重新启动它们。

我们相信,虽然这是一个小小的补充,但它开启了惊人的可能性。

您可以使用 --without-gossip 参数禁用此引导步骤。

Logo

Python社区为您提供最前沿的新闻资讯和知识内容

更多推荐