3

pika を使用して RabbitMQ サーバーへの接続を閉じると、警告WARNING:pika.adapters.base_connection:Unknown state on disconnect: 0が表示されます。

noconnection.close()を使用すると、警告は表示されません。この警告の原因は何ですか? これは無視してよいものですか?

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 で発生します。解決策は、チャネルの close-callback で接続を閉じることです。また、コンテキスト マネージャーを使用して、チャネルを自動的に閉じます。

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 に答える