メッセージのパブリッシュ/コンシュームにamqplibを使用しています。キューにあるメッセージの数を読み取れるようにしたい (理想的には、確認済みと未確認の両方)。これにより、管理者ユーザーに適切なステータス ダイアグラムを表示し、特定のコンポーネントが負荷に追いついていないかどうかを検出できます。
amqplib のドキュメントに、読み取りキューのステータスに関する情報が見つかりません。
誰かが私を正しい方向に向けることができますか?
メッセージのパブリッシュ/コンシュームにamqplibを使用しています。キューにあるメッセージの数を読み取れるようにしたい (理想的には、確認済みと未確認の両方)。これにより、管理者ユーザーに適切なステータス ダイアグラムを表示し、特定のコンポーネントが負荷に追いついていないかどうかを検出できます。
amqplib のドキュメントに、読み取りキューのステータスに関する情報が見つかりません。
誰かが私を正しい方向に向けることができますか?
ピカの使用:
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
CLI の使用:
$ sudo rabbitmqctl list_queues | grep 'my_queue'
ChillarAnand の回答に従って、簡単に値を取得できます。データはオブジェクトにあります。
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)
正確なメッセージ番号が表示されます