pika 的坑(pika.exceptions.StreamLostError: Stream connection lost: ConnectionResetError)

使用pika 的BlockingConnection

但启动后不久, 作为publish的生产端就会掉线:

pika.exceptions.StreamLostError: Stream connection lost: ConnectionResetError(10054, '远程主机强迫关闭了一个现有的连接。', None, 10054, None)

原因:

pika 默认不设置这个heatbeat参数,生产者在一定时间内和服务端没有数据来往,服务端会自动断开连接,不会一直保持connection状态。heatbeat=0不发送心跳,服务端永远不会断开这个连接;,rabbitmq 的日志显示missed heartbeats from client, timeout: 60s

import pika

connection = pika.BlockingConnection(
    pika.ConnectionParameters(
    host='localhost',
    heartbeat=0
    ))

  

 

posted @ 2020-12-21 17:50  RoyFans  阅读(579)  评论(0编辑  收藏