Uruchomiłem kod na pythonie, aby wysyłać i odbierać z kolejki RabbitMQ z innej aplikacji, w której nie mogę zezwolić na wątkowanie. To jest pytanie dla początkujących, ale czy istnieje możliwość sprawdzenia, czy jest wiadomość, a jeśli nie ma żadnych, to po prostu przestań słuchać? Jak mam zmienić podstawowy przykład "Hello world" dla tego zadania? Obecnie udało mi się przestać konsumować, gdy otrzymam wiadomość, ale jeśli nie ma wiadomości, którą moja metoda otrzyma(), po prostu dalej czekam. Jak zmusić go, aby nie czekać, jeśli nie ma żadnych wiadomości? A może czekać tylko na określony czas?RabbitMQ zużywa jedną wiadomość, jeśli istnieje i kończę
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
API Ruby ma metodę, aby sprawdzić długość kolejki .. Czy można sprawdzić w dokumentacji Pythona? –