2016-02-12 11 views
7

मेरे Django प्रोजेक्ट में, मैं पृष्ठभूमि में कार्यों को चलाने के लिए सेलेरी और खरगोश का उपयोग करता हूं। मैं आवधिक कार्यों को चलाने के लिए सेलेरी बीट शेड्यूलर का उपयोग कर रहा हूं। मैं कैसे जांच सकता हूं कि सेलेरी बीट ऊपर और चल रही है, प्रोग्रामेटिक रूप से?जांचें कि क्या सेलेरी बीट ऊपर है और

+0

आप ऐसा क्यों करना चाहते हैं? क्या आप कार्य भेजने से पहले जांचना चाहते हैं? –

+1

यदि कोई सेलरीबीट नहीं चल रहा था तो विफलता शुरू करना एक कारण होगा। इसे पूरा करने के लिए एक स्वीकार्य तरीका प्रतीत नहीं होता है। –

+2

यदि ऐसा है, तो 'पर्यवेक्षक' या कुछ ऐसा उपयोग करने के लिए बेहतर है। – trinchet

उत्तर

0

आप निम्न आदेश द्वारा अनुसूचक चल जाँच कर सकते हैं या नहीं

python manage.py celery worker --beat 
0

आप का उपयोग कर रहे हैं नवोदय या supervison या कुछ और एक पृष्ठभूमि कार्य के रूप में अजवाइन कार्यकर्ताओं + अजवाइन हरा चलाने के लिए? उत्पादन में आपको पृष्ठभूमि में सेलेरी श्रमिकों + अजवाइन की धड़कन चलाने के लिए उनमें से एक का उपयोग करना चाहिए।

सेलेरी बीट की जांच करने का सबसे आसान तरीका चल रहा है: ps aux | grep -i '[c]elerybeat'। यदि आपको pid के साथ टेक्स्ट स्ट्रिंग मिलती है तो यह चल रहा है। इसके अलावा आप इस कमांड का आउटपुट अधिक सुंदर बना सकते हैं: ps aux | grep -i '[c]elerybeat' | awk '{print $2}'। यदि आपको नंबर मिलता है - यह काम कर रहा है, अगर आपको कुछ भी नहीं मिलता है - यह काम नहीं कर रहा है।

इसके अलावा आप सेलेरी श्रमिकों की स्थिति देख सकते हैं: celery -A projectname status

यदि आप उन्नत अजवाइन निगरानी में घुसपैठ करते हैं तो आप आधिकारिक दस्तावेज़ीकरण monitoring मार्गदर्शिका पढ़ सकते हैं।

+0

हालांकि यह प्रोग्रामिक रूप से नहीं है – guival

0

आप अजवाइन celery doc की ट्यूटोरियल निम्नलिखित daemonized किया है, अगर यह चल रहा है की जाँच या नहीं के माध्यम से

sudo /etc/init.d/celeryd status 
sudo /etc/init.d/celerybeat status 

किया जा सकता है आप एक अजगर मॉड्यूल में इस तरह के आदेशों की वापसी का उपयोग कर सकते हैं।

0

आप शायद supervisor देख सकते हैं। यह celerybeat conf प्रदान करता है जो /var/log/celery/beat.log में बीट से संबंधित सबकुछ लॉग करता है।

इस बारे में जाने का एक और तरीका Flower का उपयोग करना है। आप इसे अपने सर्वर के लिए सेट कर सकते हैं (सुनिश्चित करें कि इसका पासवर्ड सुरक्षित है), यह कुछ हद तक जीयूआई में नोटिस करना आसान हो जाता है जो कतारबद्ध किए जा रहे हैं और वे किस समय कतारबद्ध हैं, इस प्रकार यह सत्यापित करना कि आपकी बीट ठीक चल रही है या नहीं।

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