2024-05-03 05:51:02 发布
网友
我们使用amqplib来发布/使用消息。我希望能够读取队列中的消息数(理想情况下是已确认和未确认)。这将允许我向管理员用户显示一个很好的状态图,并检测某个组件是否跟不上负载。
在amqplib文档中找不到有关读取队列状态的任何信息。
有人能告诉我正确的方向吗?
按照Chillarand的答案,你可以很容易地得到价值。数据在对象中。
import pika connection = pika.BlockingConnection(pika.ConnectionParameters( host='localhost', port=5672, credentials=pika.credentials.PlainCredentials('guest', 'guest'), ) channel = connection.channel() print(channel.queue_declare(queue="your_queue", durable=True, exclusive=False, auto_delete=False).method.message_count)
你会得到确切的消息号码
使用pika:
import pika pika_conn_params = pika.ConnectionParameters( host='localhost', port=5672, credentials=pika.credentials.PlainCredentials('guest', 'guest'), ) connection = pika.BlockingConnection(pika_conn_params) channel = connection.channel() queue = channel.queue_declare( queue="your_queue", durable=True, exclusive=False, auto_delete=False ) print(queue.method.message_count)
使用PyRabbit:
from pyrabbit.api import Client cl = Client('localhost:55672', 'guest', 'guest') cl.get_messages('example_vhost', 'example_queue')[0]['message_count']
使用HTTP
语法:
curl -i -u user:password http://localhost:15672/api/queues/vhost/queue
示例:
curl -i -u guest:guest http://localhost:15672/api/queues/%2f/celery
注意:默认vhost是/,需要作为%2f转义
/
%2f
使用CLI:
$ sudo rabbitmqctl list_queues | grep 'my_queue'
使用Java API,您可以执行以下操作:
channel.queueDeclarePassive(queueName).getMessageCount()
我相信amqplib也有这个功能(根据https://code.google.com/p/py-amqplib/source/browse/amqplib/client_0_8/channel.py#1356,似乎queue_declare()返回一个包含消息计数的元组)
queue_declare()
如果需要更精确的度量(特别是nack消息计数),则需要使用rabbitmqctl或rabbitmq_管理。Rabbitmq_管理可能是一个不错的选择,因为它有HTTP API。更多信息:http://www.rabbitmq.com/management.html
按照Chillarand的答案,你可以很容易地得到价值。数据在对象中。
你会得到确切的消息号码
使用pika:
使用PyRabbit:
使用HTTP
语法:
示例:
注意:默认vhost是
/
,需要作为%2f
转义使用CLI:
使用Java API,您可以执行以下操作:
我相信amqplib也有这个功能(根据https://code.google.com/p/py-amqplib/source/browse/amqplib/client_0_8/channel.py#1356,似乎
queue_declare()
返回一个包含消息计数的元组)如果需要更精确的度量(特别是nack消息计数),则需要使用rabbitmqctl或rabbitmq_管理。Rabbitmq_管理可能是一个不错的选择,因为它有HTTP API。更多信息:http://www.rabbitmq.com/management.html
相关问题 更多 >
编程相关推荐