2016-11-02 3 views
1

Ok people。 私はPythonで少し錆びていますので、簡単に私に行ってください。 私は接続しているRabbitMQサーバーを持っており、健全性チェックのための簡単なインターフェイスを構築しています。私はpikaを使用しています。pikaからキューを抽出する最も簡単な方法はどれですか?

私のコードは非常に簡単になります。

class RabbitMQConnector(object): 
    """ Class that instantiates the connection, and the test interface for 
    the RabbitMQ services. 
    """ 

    def __init__(self): 
     self._credentials = pika.PlainCredentials(Config.USERNAME, Config.PASSWORD) 
     log.info("Credentials are being set") 
     self._parameters = pika.ConnectionParameters(Config.HOST, credentials=self._credentials) 
     log.info("Connection parameters are being set") 
     self._connection = pika.BlockingConnection(self._parameters) 
     self._channel = self._connection.channel() 
     # We pass an empty string into the queue so we can get the random queue name 
     self._replyQueue = self._channel.queue_declare(queue='') 
     log.info("Reply queue name has been initialized %s" % self._replyQueue) 
     log.info("Connection initialized") 
     Config.time.sleep(5) 
     log.info("[x] System is fully initialized, and ready to accept RabbitMQ connections") 

    def connect(self): 
     pass 

    def disconnect(self): 
     pass 

しかし、私は、このメソッドを呼び出すとき:

Reply queue name has been initialized <METHOD(['channel_number=1', 'frame_type=1', "method=<Queue.DeclareOk(['consumer_count=0', 'message_count=0', 'queue=amq.gen-8GVTfmr8noMB5slpXnFRHQ'])>"])> 

そして、私がしたいだけの事:

log.info("Reply queue name has been initialized %s" % self._replyQueue) 

を私の回答は次のようになりますユーザーへの表示は実際にはこのキューです

queue=amq.gen-8GVTfmr8noMB5slpXnFRHQ 

上記の方法からこの変数を抽出する最も簡単な方法は何でしょうか? ありがとうございます。

P/S:logロガーのちょうどエイリアスは、Config.USERNAME一方とConfig.PASSWORDがちょうど 'ユーザ' であり、 'ローカルホスト' 3rd rabbitmq tutorialから

答えて

1

、受信機のためのコード:

result = channel.queue_declare(exclusive=True) 
queue_name = result.method.queue 

引用から上記のリンク(タイトルテンポラリキューの下に):

...ランダムな名前のキューを使用するか、またはそれよりも優れている場合は、 サーバーでランダムキュー名を選択します。私たちは、キューパラメータがqueue_declareし供給していない によってこれを行うことができます。

result = channel.queue_declare()
この時点で はランダムなキュー名が含まれていresult.method.queue。

+0

はい。それでおしまい。そんなにありがとう@cantSleepNow – mutantkeyboard

+0

あなたは大歓迎です! – cantSleepNow

関連する問題