我正試圖編寫一個使用RabbitMQ的Pika library的Python應用程序。我正在使用最新版本0.9.5。我的問題是我的Python代碼無法檢測到它的RabbitMQ用戶名和密碼不正確,因爲我無法弄清楚如何註冊一個Pika回調函數來告訴我這個錯誤。我的代碼是使這樣的連接:Python如何檢測到我的RabbitMQ密碼失敗?
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,現在我注意到this email message,似乎表明這個新的發展路線已經成爲死衚衕了?
感謝您的幫助!
我沒有看到那個例外的任何位置升高,從而抓住這顯然是有問題的 - 這將是巨大的,如果您發現該庫被誘導與我分享的異常,而不是隱藏它拿走的方式 - 我至少很高興知道它存在! – 2011-05-09 02:26:18