rabbitmq 服务器在pika.exceptions之后关闭,StreamLostError:流连接丢失

cedebl8k  于 2023-10-20  发布在  RabbitMQ
关注(0)|答案(3)|浏览(413)

我的队列中有一些图像,我将每个图像传递到我的flask服务器,在那里处理图像并在rabbitmq服务器中接收响应。收到响应后,我得到这个错误“pika.exceptions.StreamLostError:流连接丢失(104,'连接由对等端重置')"。当rabbitmq channel再次开始消耗连接时,就会发生这种情况。我不明白为什么会这样。如果此错误仍然存在,我还想重新启动服务器。有什么办法可以做到吗?

xggvc2p6

xggvc2p61#

您的消费进程可能花费了太多时间来完成并将Ack/Nack发送到服务器。因此,服务器不会从您的客户端接收心跳,从而停止服务。然后,在客户端,您将收到:

pika.exceptions.StreamLostError: Stream connection lost(104,'Connection reset by peer')

您还应该看到服务器日志。大概是这样的:

missed heartbeats from client, timeout: 60s

莫尔信息请参见this issue

l0oc07j2

l0oc07j22#

如果在ConnectionParameters中设置了heartbeat,则可以更改流连接限制

connection_params = pika.ConnectionParameters(heartbeat=10)

以秒为单位的数字。例如,它说你的TCP连接保持10秒。
更多信息https://www.rabbitmq.com/heartbeats.html和https://www.rabbitmq.com/heartbeats.html#tcp-keepalives

xbp102n0

xbp102n03#

在另一个线程上做你的工作。把这段代码作为一个例子-
https://github.com/pika/pika/blob/master/examples/basic_consumer_threaded.py

相关问题