Getting number of messages in a RabbitMQ queue Getting number of messages in a RabbitMQ queue python python

Getting number of messages in a RabbitMQ queue


Using pika:

import pikapika_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)

Using PyRabbit:

from pyrabbit.api import Clientcl = Client('localhost:55672', 'guest', 'guest')cl.get_messages('example_vhost', 'example_queue')[0]['message_count']

Using HTTP

Syntax:

curl -i -u user:password http://localhost:15672/api/queues/vhost/queue

Example:

curl -i -u guest:guest http://localhost:15672/api/queues/%2f/celery           

Note: Default vhost is / which needs to be escaped as %2f

Using CLI:

$ sudo rabbitmqctl list_queues | grep 'my_queue'


following the answer of ChillarAnand you can get the value easily. the data is in the object.

import pikaconnection = 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)

and you will get the exact message number


Using the Java API, you can do the following :

channel.queueDeclarePassive(queueName).getMessageCount()

I believe this is also available with amqplib (according to https://code.google.com/p/py-amqplib/source/browse/amqplib/client_0_8/channel.py#1356 it seems that queue_declare() returns a tuple with the message count)

If you need more precise metrics (especially nack message count), you need to use rabbitmqctl or rabbitmq_management. Rabbitmq_management is probably a good choice due to its HTTP API. More info : http://www.rabbitmq.com/management.html