Pika ライブラリを使用して、RabbitMQ を使用する Python アプリケーションを作成しようとしています。最新バージョンの 0.9.5 を使用しています。私の問題は、エラーを通知する 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
と、3 秒を少し超える時間が経過した後、プログラムが終了します。コールバックを登録する方法や、デッド接続の状態を単純に調べて、エラーが発生したかどうかを判断したり、それが不正なパスワード エラーであることを特定したりする方法がわかりません。Pika のドキュメントで重要なことを見逃していませんか?
Pika 0.9.5 のエラー処理がどのように機能するかを理解してくれる人はいますか? それとも、0.9.5は、この新しい開発ラインが行き止まりになっていることを示しているように見えるこの電子メール メッセージに気付いたので、代わりに以前のバージョンの Pika を使用することで避けるべき、ある種の恐ろしい実験なのでしょうか?
助けてくれてありがとう!