芹菜错过了心跳(on_node_lost)

时间:2014-01-15 08:16:39

标签: python django celery

我刚刚升级到芹菜3.1,现在我看到这是我的日志::

on_node_lost - INFO - missed heartbeat from celery@queue_name for every queue/worker in my cluster.

根据文档BROKER_HEARTBEAT默认情况下已关闭,我尚未对其进行配置。

我应该明确设置BROKER_HEARTBEAT=0还是还有其他我应该检查的内容?

3 个答案:

答案 0 :(得分:10)

看到同样的事情,并注意到日志文件中的一些内容。

1)有关于日志开始时间漂移和偶尔错过心跳的消息。

2)在日志文件的末尾,漂移消息消失,只有错过的心跳消息出现。

3)当漂移消息消失时,系统没有变化......他们只是停止了出现。

我认为漂移本身可能就是问题本身。

在所有涉及的服务器上同步时间之后,这些消息就消失了。对于ubuntu,将ntpdate作为cron或ntpd运行。

答案 1 :(得分:6)

Celery 3.1添加了新的混合和八卦程序。我也得到了大量错过的心跳和传递 - 没有八卦我的工人清理了它。

http://docs.celeryproject.org/en/latest/whatsnew-3.1.html#mingle-worker-synchronization http://docs.celeryproject.org/en/latest/whatsnew-3.1.html#gossip-worker-worker-communication

答案 2 :(得分:1)

我有类似的问题。我已经找到了我的理由。

我有两个服务器来运行worker。

当我将" ping" 用于其他服务器时, 我发现当ping时间大于2秒时,日志会显示"错过芹菜@" 的心跳。默认心跳间隔为2秒。

原因是我的网络很糟糕。 http://docs.celeryproject.org/en/latest/internals/reference/celery.worker.heartbeat.html