2016-03-28 11 views
5

मैंने अभी सेलेरी स्थापित की है और मैं एक साधारण स्थिति पृष्ठ बनाना चाहता हूं जो वर्तमान श्रमिकों और उनकी स्थिति को दिखाता है।सेलेरी/डीजेगो - प्रोग्रामर्स को श्रमिकों के राज्यों को कैसे देखें

क्या यह संभव है? वेब खोजों से मैंने पाया कि सबसे अच्छा celery.current_app.control.inspect()

लेकिन जहां तक ​​मैं देख सकता हूं, इसमें श्रमिकों के बारे में कुछ भी उल्लेख नहीं है। (यदि मैं मायने रखता हूं तो बैकएंड के लिए मैं एसक्यूएस के साथ कोम्बू का उपयोग कर रहा हूं)

+0

https://github.com/mher/flower का उपयोग क्यों नहीं करें? यहां तक ​​कि आधिकारिक सेलेरी दस्तावेज़ भी इसकी अनुशंसा करते हैं (http://docs.celeryproject.org/en/latest/userguide/monitoring.html?highlight=flower#flower-real-time-celery-web-monitor)। –

+0

फूल अच्छा लग रहा है, लेकिन मेरे पोर्पोइज़ के लिए मुझे इसे एक आंतरिक सिस्टम स्वास्थ्य जांच में प्लग करने की आवश्यकता है। तो मुझे इसे प्रोग्रामेटिक रूप से करने की ज़रूरत है। – Greg

+1

फिर आपको फूल का विस्तार करने की आवश्यकता है। – TheGreenGoblen

उत्तर

7

the documentation of celery workers में inspect कमांड के आउटपुट को समझाया गया है।

डिफ़ॉल्ट रूप से celery.current_app.control.inspect() का उपयोग करके एक "इंस्पेक्टर ऑब्जेक्ट" देता है जो आपको सभी चल रहे श्रमिकों की स्थिति के लिए पूछने की अनुमति देता है।

i = celery.current_app.control.inspect() 
    i.registered() 

i.registered() करने के लिए कॉल की तरह कुछ लौट सकते हैं:

{ 
     '[email protected]': ['tasks.add'], 
     '[email protected]': ['tasks.sleeptask'], 
    } 

अंत में, "निरीक्षक" उदाहरण के लिए आपके पास दो चल रहा 'योजक' और 'स्लीपर' नाम कार्यकर्ताओं के साथ इस कोड को निष्पादित करता है, तो विधियों registered, active, scheduled, आदि celery.current_app.control.inspect() पर चुने गए श्रमिकों द्वारा वर्गीकृत परिणामों के साथ एक शब्दकोश लौटाएं (यदि कोई श्रमिक तर्क के रूप में पारित नहीं किया जाता है, तो सभी श्रमिकों को पूरी तरह से चुना जाता है)।

+0

यह आशाजनक लग रहा है। हालांकि यह अजीब बात है, जब मैं कॉल करता हूं कि मुझे एक एसक्यूएस प्रमाणीकरण त्रुटि मिलती है। भले ही मेरा ऐप और कर्मचारी ठीक से जुड़ सकें। शायद इस कॉल को एसक्यूएस कतार पर अतिरिक्त अनुमति की आवश्यकता है? – Greg

+0

यहां यह त्रुटि है: SQSError: SQSError: 403 निषिद्ध प्रेषकAccessDenied संसाधन तक पहुंच https://queue.amazonaws.com/ अस्वीकार कर दिया गया है। 37b59c-ee-aa5c-faeb0ecba29f Greg

+0

ऐसा लगता है कि यह अभी तक समर्थित नहीं किया जा सकता है: [SQS अभी तक कार्यकर्ता रिमोट कंट्रोल आदेशों का समर्थन नहीं करता] (http://docs.celeryproject.org/en /latest/getting-started/brokers/sqs.html#caveats)। –

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