gpt4 book ai didi

python - Rabbitmq consumer_timeout 行为没有按预期工作?

转载 作者:行者123 更新时间:2023-12-05 08:29:23 24 4
gpt4 key购买 nike

我很难证明 consumer_timeout 设置按预期工作。我可能做错了什么或误解了 consumer_timeout 行为。

我所有的测试代码都可以在这里找到:https://github.com/Rafarel/rabbitmq-tests

基本上,我将 consumer_timeout 设置为 10000 毫秒(10 秒),然后我尝试通过回调来使用消息在尝试确认消息之前 sleep 时间比超时值(20 秒)长一点。

由于超时,我应该有一个 PRECONDITION_FAILED 异常,但事实并非如此。如果我在 receive_timeout.py 中将 SLEEP_DURATION 设置为超过 consumer_timeout 值(如 60 秒),我会遇到异常。

引自 https://www.rabbitmq.com/consumers.html#acknowledgement-timeout

If a consumer does not ack its delivery for more than the timeout value (30 minutes by default), its channel will be closed with a PRECONDITION_FAILED channel exception.

如果有人能帮助我理解我做错了什么,那就太好了,谢谢!

最佳答案

对于 future 的读者:

consumer_timeout 从来都不是为了提供任何类型的精度,它主要是为了保护 quorum 队列和非常长时间运行的消费者

默认情况下,超时只会每 60 秒评估一次。此间隔由 channel_tick_interval 设置控制(已编辑)

因此请尝试降低滴答间隔以获得更高的精度。

您的代码也阻塞了 IO: https://github.com/Rafarel/rabbitmq-tests/issues/1

还有

关于python - Rabbitmq consumer_timeout 行为没有按预期工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70957962/

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