首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PRECONDITION_FAILED:芹菜上的交付确认超时& RabbitMQ与Gevent和并发

PRECONDITION_FAILED:芹菜上的交付确认超时& RabbitMQ与Gevent和并发
EN

Stack Overflow用户
提问于 2021-11-03 16:36:50
回答 2查看 2.9K关注 0票数 7

我刚从ForkPool切换到gevent,使用并发(5)作为在Kubernetes吊舱中运行的芹菜工人的池方法。在开关之后,我得到了一个无法恢复的错误:

amqp.exceptions.PreconditionFailed: (0, 0): (406) PRECONDITION_FAILED - delivery acknowledgement on channel 1 timed out. Timeout value used: 1800000 ms. This timeout value can be configured, see consumers doc guide to learn more

代理日志提供了基本相同的消息:

2021-11-01 22:26:17.251 [warning] <0.18574.1> Consumer None4 on channel 1 has timed out waiting for delivery acknowledgement. Timeout used: 1800000 ms. This timeout value can be configured, see consumers doc guide to learn more

我已经设置了CELERY_ACK_LATE,但不熟悉为确认期间设置超时的必要性。在使用过程之前从来没有发生过这种情况。任务可以相当长(有时是60-120秒),但我无法找到允许这样做的特定设置。

我在其他论坛的另一篇文章中看到,一位用户将代理配置上的超时设置为大量(比如24小时),并且也遇到了同样的问题,因此我认为可能还有一些与这个问题相关的东西。

关于如何使工人更有弹性,有什么想法或建议吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-03-05 01:40:20

作为将来的参考,新的RabbitMQ版本(+3.8)似乎为consumer_timeout引入了一个严格的默认设置(我认为是15分钟)。

我找到的解决方案(不久前这里还添加到芹菜文档中)只是在RabbitMQ中为consumer_timeout添加了大量的数据。

这个问题中,有人提到将consumer_timeout设置为false,这种方式不需要使用大量的数字,但显然在配置的格式方面有一些细节可以让它工作。

我在k8s中运行k8s,只做了如下操作:

代码语言:javascript
运行
复制
rabbitmq.conf: |
  consumer_timeout = 31622400000
票数 5
EN

Stack Overflow用户

发布于 2022-10-02 19:40:13

接受的答案是正确的答案。但是,如果您有一个现有的RabbitMQ服务器正在运行,并且不想重新启动它,您可以通过在RabbitMQ服务器上运行以下命令动态地设置配置值:

rabbitmqctl eval 'application:set_env(rabbit, consumer_timeout, 36000000).'

这将将新的超时设置为10小时(360000ms)。但是,要使其生效,您需要重新启动员工。现有的员工连接将继续使用旧的超时。

还可以检查当前配置的超时值:

rabbitmqctl eval 'application:get_env(rabbit, consumer_timeout).'

如果您通过Docker映像运行RabbitMQ,下面是如何设置值:只需将-e RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS="-rabbit consumer_timeout 36000000"添加到docker run或将环境RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS设置为"-rabbit consumer_timeout 36000000"即可。

希望这能有所帮助!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69828547

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档