我试图通过Pika library编写一个使用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运行三秒钟以上,然后程序终止。我不知道如何注册一个回调,甚至不能简单地检查死机连接的状态,以确定发生了错误,或者明确地发现这是一个错误的密码错误。我是否遗漏了一些重要的信息?在
有人能帮我理解pika0.9.5错误处理的工作原理吗?或者0.9.5是某种可怕的实验,我应该用一个早期版本的Pika来避免,现在我已经注意到this email message似乎表明这条新的开发路线已经成为一条死胡同?在
谢谢你的帮助!在