Sto eseguendo il codice su python per inviare e ricevere dalla coda RabbitMQ da un'altra applicazione in cui non posso consentire il threading. Questa è una domanda da principianti, ma c'è la possibilità di controllare se c'è un messaggio e se non ce ne sono, basta semplicemente smettere di ascoltare? Come dovrei cambiare l'esempio di base "Hello world" per tale compito? Attualmente sono riuscito a smettere di consumare se ottengo un messaggio, ma se non ci sono messaggi il mio metodo receive() continua ad aspettare. Come forzarlo a non aspettare se non ci sono messaggi? O forse aspettare solo per un dato periodo di tempo?RabbitMQ consuma un messaggio se esiste e chiude
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 rubino ha un metodo per controllare la lunghezza della coda .. hai controllato i documenti di pitone? –