2011-09-26 24 views
5

मैं अजगर अजवाइन + खरगोश का उपयोग कर रहा हूं। मुझे कुछ कतार में कार्य गिनती पाने का कोई तरीका नहीं मिल रहा है। इस तरह कुछ बात:अजवाइन कार्य को गिनती

celery.queue('myqueue').count() 

यह कार्य certaint कतार से गिनती पाने के लिए posible है? ,

"rabbitmqctl list_queues -p my_vhost" 

और परिणाम को पार्स यह यह करने के लिए अच्छा तरीका है:

एक समाधान मेरी अजगर scrpit से बाहरी कमांड को चलाने के लिए है?

+0

[यहां] (http://celery.readthedocs.org/en/latest/userguide/monitoring.html#inspecting-queues) में एक नज़र डालें। – hymloth

+0

मैं सवाल अद्यतन करता हूं। – Evg

+0

बेशक कुछ जानकारी उपलब्ध कराने के लिए बाहरी आदेशों को चलाने के लिए ठीक है ... – hymloth

उत्तर

5

मुझे लगता है कि rabbitmqctl कमांड का उपयोग करना अच्छा समाधान नहीं है, खासकर मेरे उबंटू सर्वर पर, जहां rabbitmqctl केवल रूट विशेषाधिकारों के साथ निष्पादित किया जा सकता है।

पिका वस्तुओं के साथ खेलने से मेरा काम कर समाधान नहीं मिला:

import pika 
from django.conf import settings 

def tasks_count(queue_name): 
    ''' Connects to message queue using django settings and returns count of messages in queue with name queue_name. ''' 
    credentials = pika.PlainCredentials(settings.BROKER_USER, settings.BROKER_PASSWORD) 
    parameters = pika.ConnectionParameters(credentials=credentials, 
              host=settings.BROKER_HOST, 
              port=settings.BROKER_PORT, 
              virtual_host=settings.BROKER_VHOST) 
    connection = pika.BlockingConnection(parameters=parameters) 
    channel = connection.channel() 
    queue = channel.queue_declare(queue=queue_name, durable=True) 
    message_count = queue.method.message_count 
    return message_count 

मैं पिका साथ AMQP कतार निरीक्षण के बारे में दस्तावेज़ नहीं मिला, तो मैं समाधान की शुद्धता के बारे में पता नहीं है।

संबंधित मुद्दे