【发布时间】:2011-04-11 03:06:52
【问题描述】:
我正在尝试让使用 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 服务器,它将连接。我只是不喜欢看到这些错误...它们正常吗?我做错了吗?
【问题讨论】: