gpt4 book ai didi

python - celery :禁用 worker 之间的心跳

转载 作者:IT王子 更新时间:2023-10-29 06:03:20 25 4
gpt4 key购买 nike

我正在使用 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

worker 不应该直接相互交流,他们都应该从经纪人那里获得他们需要的信息。是否可以禁用工作节点之间的心跳?如果是这样,出于某种我还没有看到的原因,这是一个坏主意吗?

最佳答案

您可以尝试使用 --without-gossip 来运行您的 worker以防止这种情况发生。从 Celery 3.1 开始,worker 开始被动订阅其他 worker 事件,例如心跳。

添加 Gossip 是为了让 celery 用户可以利用工作人员的沟通,比如将任务重新路由给最好的工作人员,但是如果工作人员没有理由进行交流,可以禁用它。您可以在此处详细了解什么是 worker 八卦/为什么引入它:Celery 3.1 What's New .

您还可以添加 --without-mingle在启动时禁用工作同步的选项。

另外,这个问题似乎是相关的:celery missed heartbeat (on_node_lost)

关于python - celery :禁用 worker 之间的心跳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50328971/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com