我正在尝试通过Pika 库编写一个使用 RabbitMQ 的 Python 应用程序。我正在使用最新版本,0.9.5。我的问题是我的 Python 代码无法检测到它的 RabbitMQ 用户名和密码何时不正确,因为我不知道如何注册一个通知我错误的 Pika 回调。我的代码正在建立这样的连接:
import pika
class MyClient(object):
def __init__(self, host, username, password):
self.host = host
self.username = username
self.password = password
self.connection = None
def connect(self):
credentials = pika.PlainCredentials(self.username, self.password)
parameters = pika.ConnectionParameters(
host=self.host, credentials=credentials, heartbeat=True,
)
self.connection = pika.SelectConnection(
parameters, self.on_connected,
)
self.connection.add_on_close_callback(self.on_close)
self.connection.ioloop.start()
def on_connected(self, *args, **kw):
print 'I am connected!', args, kw
def on_close(self, *args, **kw):
print 'I am closed!', args, kw
my_client = MyClient('...', '...', '...')
my_client.connect()
# (Good, I remembered to remove the username and password
# before pasting to Stack Overflow!)
如果我运行此脚本,则ioloop
运行时间超过三秒钟,然后程序终止。我无法弄清楚如何注册回调,甚至无法简单地检查死连接的状态,以确定发生错误或具体找出这是一个错误的密码错误。我是否错过了 Pika 文档中的重要内容?
有人可以帮我理解 Pika 0.9.5 错误处理应该如何工作吗?或者 0.9.5 是某种可怕的实验,我应该通过使用早期版本的 Pika 来避免,现在我注意到这封电子邮件似乎表明这条新的开发路线已成为死胡同?
谢谢你的帮助!