使用 pika 关闭与 RabbitMQ 服务器的连接时,会WARNING:pika.adapters.base_connection:Unknown state on disconnect: 0
出现警告。
如果connection.close()
使用 no,则不会出现警告。是什么导致了这个警告,这是我们可以忽略的吗?
在 Mac OSX 上使用 Python 2.7、RabbitMQ 3.2.2、iPython 1.1.0、pika 0.9.13。
使用 pika 关闭与 RabbitMQ 服务器的连接时,会WARNING:pika.adapters.base_connection:Unknown state on disconnect: 0
出现警告。
如果connection.close()
使用 no,则不会出现警告。是什么导致了这个警告,这是我们可以忽略的吗?
在 Mac OSX 上使用 Python 2.7、RabbitMQ 3.2.2、iPython 1.1.0、pika 0.9.13。
这已通过拉取请求#346修复。等一个新版本吧:)
如果我在通道完全关闭之前关闭我的 BlockingConnection,这会在 RabbitMQ 3.3.3 中发生在我身上。解决方案是在通道的关闭回调中关闭您的连接。此外,使用上下文管理器自动关闭通道。
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)
...
...