RabbitMQ verbrauchen Sie eine Nachricht, wenn vorhanden und beenden

Ich bin das ausführen von code auf python-senden und empfangen von RabbitMQ Warteschlange aus einer anderen Anwendung, wo ich kann nicht erlauben, dass threading.
Dies ist sehr newbie-Frage, aber gibt es eine Möglichkeit nur überprüfen, ob die Meldung und wenn es gibt keine dann einfach beenden hören ? Wie sollte ich das ändern basic "Hello world" Beispiel für eine solche Aufgabe? Derzeit habe ich es geschafft aufzuhören, wenn ich eine Nachricht bekommen, aber wenn es keine Meldungen gibt, meine Methode receive() einfach weiter warten. Wie um ihn zu zwingen, nicht zu warten, wenn es keine Meldungen gibt? Oder vielleicht warten Sie nur für bestimmte Zeit?

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
der ruby-API hat eine Methode zur überprüfung der Länge der Warteschlange.. haben Sie überprüft, die python docs?

InformationsquelleAutor GrayR | 2012-03-26

Schreibe einen Kommentar