2014-01-06 5 views
3

При закрытии соединения с сервером RabbitMQ с помощью pika появляется предупреждение WARNING:pika.adapters.base_connection:Unknown state on disconnect: 0.Использование pika connection.close() дает «ПРЕДУПРЕЖДЕНИЕ: pika.adapters.base_connection: Неизвестное состояние при отключении: 0»

Если не используется connection.close(), предупреждение не отображается. Что вызывает это предупреждение, и можно ли это игнорировать?

Использование Python 2.7, RabbitMQ 3.2.2, iPython 1.1.0, pika 0.9.13 на Mac OSX.

enter image description here

ответ

2

Это было исправлено с выдвижным запроса #346. Дождитесь новой версии :)

0

Это происходит со мной в RabbitMQ 3.3.3, если я закрою свое BlockingConnection до того, как канал полностью закрыт. Решение заключается в том, чтобы закрыть ваше соединение при обратном вызове канала. Кроме того, для автоматического закрытия канала используйте 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) 
    ... 
    ...