簡體   English   中英

pika, rabbitmq - 從隊列中獲取所有消息而不消耗它們

[英]pika, rabbitmq - get all messages from the queue without consuming them

使用pika客戶端,我想顯示當前隊列中的所有消息,而不使用它們。 只是想知道隊列有多忙並顯示作業。

到目前為止,我只能在一條消息到達時閱讀它:

channel.queue_declare(queue='queue1', durable=True)
channel.basic_consume(on_message, queue='queue1')
channel.start_consuming()

def on_message(channel, method, properties, message):
    channel.basic_ack(delivery_tag=method.delivery_tag)
    print("Message: %s", message)

我如何閱讀整個隊列?

要“不消費”地閱讀消息,請不要確認消息的傳遞。 在上述情況下,擺脫

channel.basic_ack(delivery_tag=method.delivery_tag)

或將auto_ack設置為False

def callback(ch, method, properties, body):
    print(body)
   
channel.basic_consume(queue='your_queue', on_message_callback=callback, auto_ack=False)

消息將在 rabbitMQ 中被讀取並標記為未確認,但仍可在隊列中使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM