3

使用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)

我如何阅读整个队列?

4

1 回答 1

0

要“不消费”地阅读消息,请不要确认消息的传递。在上述情况下,摆脱

channel.basic_ack(delivery_tag=method.delivery_tag)

或设置auto_ackFalse

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

消息将在 rabbitMQ 中被读取并标记为未确认,但仍可在队列中使用。

于 2022-01-13T11:25:08.817 回答