使用pika关闭与RabbitMQ服务器的连接时,会出现警告WARNING:pika.adapters.base_connection:Unknown state on disconnect: 0
。
如果未使用connection.close()
,则不会显示警告。是什么导致了这个警告,这是我们可以忽略的事情吗?
在Mac OSX上使用Python 2.7,RabbitMQ 3.2.2,iPython 1.1.0,pika 0.9.13。
答案 0 :(得分:2)
这是通过拉取请求#346修复的。等待新版本:))
答案 1 :(得分:0)
如果在通道完全关闭之前关闭我的BlockingConnection,这在RabbitMQ 3.3.3中就会发生这种情况。解决方案是在通道的close-callback中关闭连接。另外,使用context manager自动关闭频道。
params = pika.ConnectionParameters(host=self._host, port=self._port)
connection = pika.BlockingConnection(params)
with contextlib.closing(connection.channel()) as channel:
# Close connection once channel is closed
def closeConnection(channel, replyCode, replyText):
connection.close()
channel.add_on_close_callback(closeConnection)
# Declare a durable queue; we will use the default exchange for
# simple key-based routing
channel.queue_declare(queue=self._queueName, durable=True)
...
...