2017-09-27 5 views
0

Supposons que j'ai deux scripts - un pour cloudfront (cf), et un autre elb.J'ai une valeur assignée dans json dans une file d'attente (rabbitmq), appelée demande queue.when je lance mes scripts Elb il devrait obtenir que le msg avec file_type = ELBObtenir un message spécifique de la file d'attente (Rabbitmq) qui se trouve dans json d'un groupe de mesggae dans la file d'attente, python

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

quand je lance mes scripts cf il devrait obtenir que le msg avec file_type = cf

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

Mon code ci-dessous ne fonctionne que pour le premier msg que j'ai publié dans la file d'attente, pas de type. Tout le monde peut ovide l'idée que puis-je faire pour obtenir file_type = cf msg de scripts cf et vice-versa..I am en utilisant l'échange par défaut

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'] 

je pourrais avoir beaucoup de messages dans une file d'attente, le défi est que je dois pour obtenir le message récent avec le type de fichier ...

Répondre

0

L'un des points de RabbitMQ est que vous pouvez définir des files d'attente à lier aux échanges avec des clés de routage particulières. Vous devez utiliser le paramètre type dans le cadre de votre clé de routage, puis lier votre file d'attente pour qu'elle soit à l'écoute du type souhaité.

Voir par exemple part 4 of the RabbitMQ tutorial.

+0

.. bonne suggestion..lettre moi check..absolute nouveau à rabbitmq..i trouvera – pupu