ファジーマッチングルーティングキーのRabbitMQの

序文

ファジーマッチングのルーティングキー

それはあなたが正規表現を使用することができるということです、そして定期的に使用される異なるタイプを表し、そして「#」は、すべてのためにすべての意味を略で、「*」だけの単語に一致します。例としては、読書を理解することができるようになります。

このような関数に何かの例:

たとえば、あなたは親密な友人を持って、職場や生活の事で、幸せな悲しいが可能と彼女は言ったかどうか、何人かの友人は、共有楽しい事にありますが、何人かの友人があり、あなたは不幸なものを置くことができますし、彼女は言いました。

ルーティングキー

ルーティング= [ 'happy.work'、 'happy.life'、 'happy.work.teacher'、 'sad.work'、 'sad.life'、 'sad.work.teacher']

「#」:すべてのキーのルートを照合します

"幸せ#":匹配 'happy.work'、 'happy.life'、 'happy.work.teacher'

「作業#」:いいえマッチ

"ハッピー*。":マッチ 'happy.work'、 'happy.life'

"* .Work":マッチ 'happy.work'、 'sad.work'

"* .work#":匹配 'happy.work'、 'happy.work.teacher'、 'sad.work'、 'sad.work.teacher' 

コード

送信者

輸入ナキウサギ

ホスト名 = ' 127.0.0.1 ' 
パラメータ = pika.ConnectionParameters(ホスト名)
接続 = pika.BlockingConnection(パラメータ)

チャンネル作成 
チャンネルを= connection.channel()
は、タイプトピックを設定し、スイッチを定義 
channel.exchange_declare(取引所= ' test_queue_topic '、EXCHANGE_TYPE = ' トピックを' 

3ルーティングキーの定義 
ルーティング= [ ' happy.work '' happy.life '' sad.work '' sad.lifeを' ]

メッセージを順次ルーティングキーをスイッチに送信し、設定されている
ため、ルーティング作業手順:
    メッセージ = " %sのメッセージ。"ルーティング
    channel.basic_publish(交換 = ' test_queue_topic '、routing_key =ルーティング、本体= メッセージ)
     プリント(メッセージ)

connection.close()

受信側

輸入SYS、ナキウサギ

ホスト名 = ' 127.0.0.1 ' 
パラメータ = pika.ConnectionParameters(ホスト名)
接続 = pika.BlockingConnection(パラメータ)

チャンネル作成 
チャンネルを= connection.channel()
は、タイプトピックを設定し、スイッチを定義 
channel.exchange_declare(取引所= ' test_queue_topic '、EXCHANGE_TYPE = ' トピックを' 

ない場合は、コマンドラインからの重要なパラメータをルーティング設定情報の取得 
ルーティングをsys.argvの= [1。:]
 IF  ないルーティング:
    ルーティング = [ ' 情報' ]

一時キュー、生成 
結果= channel.queue_declare(キュー= test_queue_topic 、排他= TRUE)  そのキューの受信側が一時的に作成破壊されるとき、排他= Trueの終了]を 
queue_nameの= result.method.queue

以下のためのルーティングルーティング:
     スイッチに結合された、提供のキールーティング 
    channel.queue_bind(取引所= test_queue_topicを、キューqueue_nameの=、= routing_key ルーティング)


DEF コールバック(CH、メソッド、プロパティ、本体):
     プリント" [X]は受信%のR "(本体))


channel.basic_consume(
    キュー = test_queue_topic キュー名を指定し 
    on_message_callback =コールバック、   キューからGETメッセージ 
    AUTO_ACK = Falseの   #の損失を防止する作業までMQサーバー・ハング


印刷メッセージに対して[*]待機中。Ctrlキーを押しながらCを終了するには
channel.start_consuming()

コードのテスト

 送信者

 受信側

作業

 ハッピー

 全て

 

おすすめ

転載: www.cnblogs.com/SR-Program/p/12623560.html