gpt4 book ai didi

python-2.7 - 在不禁用心跳的情况下保持pika BlockingConnection处于事件状态

转载 作者:行者123 更新时间:2023-12-03 13:48:25 25 4
gpt4 key购买 nike

我正在使用pika 0.10.0和python 2.7版本开发RabbitMQ消费者。在我的消费者客户端中,我有一个进程会运行一段时间,具体取决于输入消息。它可能在3到40分钟之间变化。
我不想禁用心跳。取而代之的是,我正在寻找某种collback机制,该机制可以保持连接有效,直到delivery_tag被发回。那可能吗?

我得到的链接很少,所有人都建议禁用心跳作为解决方法。但是我不想禁用它。

引用:

Socket Error: 104 consuming messages with task that take a long time #753

BlockingConnection gets closed unexpectedly #734

另外,请让我知道是否需要任何其他信息。
提前致谢。

最佳答案

唯一的解决方案是定期发送心跳帧。

使用BlockingConnection时,您必须足够频繁地调用 process_data_events 函数(可以将time_limit设置为零)。使用SelectConnection或其他异步适配器时,必须确保没有任何进程阻塞,以便可以发送帧。

如果您的任务运行时间长,并且由于某种原因您不能轻易中断或拆分进程,则可以在另一个线程/进程中运行该任务,并且仍然有pika从主线程发送帧。请记住,您应该避免在线程之间使用pika连接(pika目前不是线程安全的)。

关于python-2.7 - 在不禁用心跳的情况下保持pika BlockingConnection处于事件状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46053349/

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