Getting number of messages in a RabbitMQ queue(获取 RabbitMQ 队列中的消息数)
问题描述
我们使用 amqplib 来发布/使用消息.我希望能够读取队列上的消息数量(理想情况下,既已确认又未确认).这将允许我向管理员用户显示一个漂亮的状态图,并检测某个组件是否跟不上负载.
We're using amqplib to publish/consume messages. I want to be able to read the number of messages on a queue (ideally both acknowledged and unacknowledged). This will allow me to show a nice status diagram to the admin users and detect if a certain component is not keeping up with the load.
我在 amqplib 文档中找不到任何关于读取队列状态的信息.
I can't find any information in the amqplib docs about reading queue status.
有人能指出正确的方向吗?
Can someone point me in the right direction?
推荐答案
使用鼠兔:
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
注意:默认虚拟主机是 / 需要转义为 %2f
Note: Default vhost is / which needs to be escaped as %2f
使用 CLI:
$ sudo rabbitmqctl list_queues | grep 'my_queue'
这篇关于获取 RabbitMQ 队列中的消息数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:获取 RabbitMQ 队列中的消息数
基础教程推荐
- Kivy 使用 opencv.调整图像大小 2022-01-01
- 对多索引数据帧的列进行排序 2022-01-01
- matplotlib 设置 yaxis 标签大小 2022-01-01
- Python 中是否有任何支持将长字符串转储为块文字或折叠块的 yaml 库? 2022-01-01
- 比较两个文本文件以找出差异并将它们输出到新的文本文件 2022-01-01
- 在 Python 中将货币解析为数字 2022-01-01
- 在 Django Admin 中使用内联 OneToOneField 2022-01-01
- kivy 应用程序中的一个简单网页作为小部件 2022-01-01
- 究竟什么是“容器"?在蟒蛇?(以及所有的 python 容器类型是什么?) 2022-01-01
- Python,确定字符串是否应转换为 Int 或 Float 2022-01-01
