2017-09-27 9 views
0

を取得します.1つはクラウドフロント(cf)用で、もう1つはエルボ用です.Jsonにはいくつかの値が割り当てられています私は私のELBスクリプトを実行し、要求queue.whenと呼ばれるキュー(RabbitMQの)、内側にそれは私が私のCFのスクリプトを実行すると、それはFILE_TYPE = CFでのみMSGを取得する必要がありますFILE_TYPE = ELBjsonにあるキュー(Rabbitmq)から、キュー内の複数のmesggaeからPython

{'file_type':'elb','elb_name':'name1','customer_id':'1','s3_bucket':'elb-logs-bucket'} 

でのみMSGを取得する必要があります

{'file_type':'cf','cf_name':'name1','customer_id':'1','s3_bucket':'cf-logs-bucket'} 

私の下のコードは、私がキューに公開した最初のmsgに対してのみ動作し、type.Anyone canはできませんovide私はCFスクリプトと副versa..IからFILE_TYPE = CF MSGを取得するために何ができるかのアイデアは、私は、キュー内の多くのメッセージがある可能性があります既定交換

import json 
import pika 
import logging 

def get_rmq_request_queue(channel,connection,req_queue_name): 
    payload_dict={} 
    try: 
     queue_message=channel.basic_get(queue=req_queue_name,no_ack=False) 
     payload=queue_message[2] 
     print payload 
     print payload 
     payload_dict=json.loads(payload) 
     return payload_dict 

    except Exception as e: 
     payload_dict={} 
     payload_dict['error']=str(e)   
     return payload_dict 

main(): 
res_req_que=get_rmq_request_queue(channel,connection,req_queue_name) 
    if 'error' not in res_req_que: 
     s3_bucket=res_req_que['s3_bucket'] 
     customer_id=res_req_que['customer_id'] 
     file_type=res_req_que['file_type'] 
     cf_name=res_req_que['cf_name'] 

を使用しています、挑戦は私が必要ですファイルタイプの最近のメッセージを取得するには...

答えて

0

RabbitMQのポイントの1つは、特定のルーティングキーとの交換にバインドするキューを定義できることです。ルーティングキーの一部としてtypeパラメータを使用し、キューをバインドして、必要なタイプをリッスンする必要があります。

たとえば、part 4 of the RabbitMQ tutorialを参照してください。

+0

..良い提案。レットメイチェック。絶対新規ウサギmq..i見つける – pupu

関連する問題