我很难证明consumer_timeout
设置按预期工作。
我可能做错了什么或者误解了consumer_timeout
的行为。
我所有用于测试的代码都可以在这里找到:https://github.com/Rafarel/rabbitmq-tests
基本上,我将consumer_timeout
设置为10000ms(10秒),然后尝试使用回调函数消费消息,在回调函数中等待超时时间值(20秒)之后再尝试确认消息。
我应该因为超时而收到PRECONDITION_FAILED异常,但事实并非如此。
只有当我将receive_timeout.py
中的SLEEP_DURATION
设置得比consumer_timeout
的值大得多,例如60秒时,我才会收到异常。
https://www.rabbitmq.com/consumers.html#acknowledgement-timeout中的引文:
如果消费者未对其传递进行确认而超过超时值(默认为30分钟),则其通道将通过PRECONDITION_FAILED通道异常关闭。
如果有人能帮助我理解我做错了什么,那将是太好了,谢谢!