芹菜:禁用工人之间的心跳
Celery: Disable heartbeat between workers
我正在使用 Redis 后端和代理在 Celery 中处理数据例程。许多工作人员(约 200 人)与代理交互以获取任务并执行这些任务。然而,我的工作人员都在互相发送心跳信号,这会在他们的日志中填充各种各样的内容,如下所示:
[2018-05-13 15:38:00,737: INFO/MainProcess] missed heartbeat from celery@d12chas387.crc.nd.edu
[2018-05-13 15:38:00,737: INFO/MainProcess] missed heartbeat from celery@d12chas530.crc.nd.edu
[2018-05-13 15:38:00,737: INFO/MainProcess] missed heartbeat from celery@d12chas531.crc.nd.edu
[2018-05-13 15:38:00,738: INFO/MainProcess] missed heartbeat from celery@d12chas351.crc.nd.edu
[2018-05-13 15:38:00,738: INFO/MainProcess] missed heartbeat from celery@d12chas515.crc.nd.edu
[2018-05-13 15:38:00,739: INFO/MainProcess] missed heartbeat from celery@d12chas492.crc.nd.edu
工人不应该直接相互交流,他们都应该从经纪人那里获得他们需要的信息。是否可以禁用工作节点之间的心跳?如果是这样,出于某种我还没有看到的原因,这是一个坏主意吗?
您可以尝试 运行 您的工人使用 --without-gossip 来防止这种情况发生。从 Celery 3.1 开始,worker 开始被动订阅其他 worker 事件,例如心跳。
添加八卦以允许 celery 用户利用工作人员的沟通,例如将任务重新路由给最好的工作人员,但如果工作人员没有理由进行交流,则可以禁用此功能。
你可以在这里阅读更多关于工人八卦 is/why 的介绍:Celery 3.1 What's New。
您还可以添加 --without-mingle 选项以在启动时禁用 worker 同步。
此外,这个问题似乎相关:celery missed heartbeat (on_node_lost)
我正在使用 Redis 后端和代理在 Celery 中处理数据例程。许多工作人员(约 200 人)与代理交互以获取任务并执行这些任务。然而,我的工作人员都在互相发送心跳信号,这会在他们的日志中填充各种各样的内容,如下所示:
[2018-05-13 15:38:00,737: INFO/MainProcess] missed heartbeat from celery@d12chas387.crc.nd.edu
[2018-05-13 15:38:00,737: INFO/MainProcess] missed heartbeat from celery@d12chas530.crc.nd.edu
[2018-05-13 15:38:00,737: INFO/MainProcess] missed heartbeat from celery@d12chas531.crc.nd.edu
[2018-05-13 15:38:00,738: INFO/MainProcess] missed heartbeat from celery@d12chas351.crc.nd.edu
[2018-05-13 15:38:00,738: INFO/MainProcess] missed heartbeat from celery@d12chas515.crc.nd.edu
[2018-05-13 15:38:00,739: INFO/MainProcess] missed heartbeat from celery@d12chas492.crc.nd.edu
工人不应该直接相互交流,他们都应该从经纪人那里获得他们需要的信息。是否可以禁用工作节点之间的心跳?如果是这样,出于某种我还没有看到的原因,这是一个坏主意吗?
您可以尝试 运行 您的工人使用 --without-gossip 来防止这种情况发生。从 Celery 3.1 开始,worker 开始被动订阅其他 worker 事件,例如心跳。
添加八卦以允许 celery 用户利用工作人员的沟通,例如将任务重新路由给最好的工作人员,但如果工作人员没有理由进行交流,则可以禁用此功能。 你可以在这里阅读更多关于工人八卦 is/why 的介绍:Celery 3.1 What's New。
您还可以添加 --without-mingle 选项以在启动时禁用 worker 同步。
此外,这个问题似乎相关:celery missed heartbeat (on_node_lost)