rabbitmq pika connection closed
家中PC上,端口扫描的python脚本多次出现pika connection closed的错误,同一脚本在办公机和虚机上从来没问题。
比较奇怪,因为我比较谨慎,在需要延时的地方都使用了mq.conn.sleep()而非time.sleep(),也避免陷入一个长时的循环。
connection closed一般是因为heartbeat timeout引起的,server主动关闭了连接。
为了解决这个问题,在家中PC机上禁用heartbeat,参数heartbeat_interval设置为0:
1
2
3
4
|
params = pika.ConnectionParameters(host=MQ_HOST, port=MQ_PORT,
credentials=pika.credentials.PlainCredentials(MQ_USER, MQ_PASSWD),
heartbeat_interval=0)
self.conn = pika.BlockingConnection(parameters=params)
|