2013-04-24 2 views
1

Следующий код является то, что я использую, чтобы получить количество числа потребителей:Получить общее количество потребителей для очереди RabbitMQ с помощью пищуха

import pika 

connection = pika.BlockingConnection(pika.ConnectionParameters(host='IP ADDRESS')) 
channel = connection.channel() 

this=channel.queue_declare(queue="Queue_name",passive=True) 

print this.method.consumer_count 

Теперь граф, что я получаю это количество активных потребителей. Однако, когда потребители потребляют из очереди, этот счет печатается как ноль. Теперь мне нужно общее количество потребителей, потребляющих из очереди. Это, как представляется RabbitMQ Management (как потребители: 0 активного 25 Всего)

Есть ли способ, чтобы получить количество от общего числа потребителей, потребляющих из очереди, в то время как есть сообщения в очереди?

Спасибо заранее

ответ

3

Ниже приводится ответ на этот вопрос. Однако он использует HTTP API, а не pika.

import subprocess 
import os 
import json 


#Execute in command line 
def execute_command(command): 
    proc = subprocess.Popen(command,shell=True,stdout=subprocess.PIPE) 
    script_response = proc.stdout.read().split('\n') 
    resp=json.loads(script_response[7]) 
    print resp[0]['name'] 
    print resp[0]['consumers'] 

    ######### MAIN ######### 
    if __name__ == '__main__': 
     execute_command('curl -i -u guest:guest http://*IP ADDRESS*:15672/api/queues/') 

Пожалуйста, обратитесь: http://hg.rabbitmq.com/rabbitmq-management/raw-file/3646dee55e02/priv/www-api/help.html

Смежные вопросы