RabbitMQ consommer un message si existe et quitter

Je suis en cours d'exécution de code python pour envoyer et recevoir de RabbitMQ file d'attente à partir d'une autre application où je ne peux me permettre de filetage.
C'est très newbie question mais, est-il possible de simplement vérifier si on a le message et si il n'y a pas alors tout simplement arrêter l'écoute ? Comment dois-je changer de base exemple "Hello world" pour une telle tâche? Actuellement j'ai réussi à arrêter de consommer si je reçois un message, mais si il n'y a pas de messages de ma méthode receive() juste à continuer à attendre. Comment à force de ne pas attendre si il n'y a pas de messages? Ou peut-être attendre seulement pour la période de temps donnée?

import pika

global answer

def send(msg):
    connection = pika.BlockingConnection(pika.ConnectionParameters())
    channel = connection.channel()
    channel.queue_declare(queue='toJ')
    channel.basic_publish(exchange='', routing_key='toJ', body=msg)
    connection.close()

def receive():
    connection = pika.BlockingConnection(pika.ConnectionParameters(host='localhost'))
    channel = connection.channel()
    channel.queue_declare(queue='toM')
    channel.basic_consume(callback, queue='toM', no_ack=True)
    global answer
    return answer

def callback(ch, method, properties, body):
    ch.stop_consuming()
    global answer
    answer = body
  • l'API ruby a une méthode pour vérifier la longueur de la file d'attente.. avez-vous vérifié le python docs?
InformationsquelleAutor GrayR | 2012-03-26