Как я могу заставить Pika повторить попытку подключения к RabbitMQ, если он терпит неудачу в первый раз?

Я пытаюсь заставить свою программу, которая использует Pika, постоянно повторять попытки подключения к RabbitMQ в случае сбоя. Из того, что я видел в документах Pika, есть класс SimpleReconnectionStrategy, который можно использовать для этого, но, похоже, он работает не очень хорошо.

strategy        = pika.SimpleReconnectionStrategy()
parameters      = pika.ConnectionParameters(server)

self.connection = pika.AsyncoreConnection(parameters, True, strategy)
self.channel    = self.connection.channel()

Соединение должно wait_for_open и настроить стратегию повторного подключения.

Однако, когда я запускаю это, я получаю следующие ошибки:

error: uncaptured python exception, closing channel <pika.asyncore_adapter.RabbitDispatcher at 0xb6ba040c> (<class 'socket.error'>:[Errno 111] Connection refused [/usr/lib/python2.7/asyncore.py|read|79] [/usr/lib/python2.7/asyncore.py|handle_read_event|435] [/usr/lib/python2.7/asyncore.py|handle_connect_event|443])
error: uncaptured python exception, closing channel <pika.asyncore_adapter.RabbitDispatcher at 0xb6ba060c> (<class 'socket.error'>:[Errno 111] Connection refused [/usr/lib/python2.7/asyncore.py|read|79] [/usr/lib/python2.7/asyncore.py|handle_read_event|435] [/usr/lib/python2.7/asyncore.py|handle_connect_event|443])

Эти ошибки постоянно возникают, пока Pika пытается подключиться. Если я запустил сервер RabbitMQ во время работы моего клиента, он подключится. Мне просто не нравится вид этих ошибок ... Они нормальные? Я делаю это неправильно?

5
задан Michael Dillon 31 May 2011 в 04:51
поделиться