3

使用 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。

在此处输入图像描述

4

2 回答 2

2

这已通过拉取请求#346修复。等一个新版本吧:)

于 2014-02-03T16:46:30.853 回答
0

如果我在通道完全关闭之前关闭我的 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) 
    ...
    ...
于 2014-06-19T21:33:56.273 回答