我刚刚升级到芹菜3.1,现在我看到这是我的日志::
on_node_lost - INFO - missed heartbeat from celery@queue_name for every queue/worker in my cluster.
根据文档BROKER_HEARTBEAT
默认情况下已关闭,我尚未对其进行配置。
我应该明确设置BROKER_HEARTBEAT=0
还是还有其他我应该检查的内容?
答案 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