2013-06-10 12 views
7

मैं एक ट्रैवल कंपनी के लिए काम करता हूं जहां हमें हमारी टीमों को आवधिक मेल भेजने की आवश्यकता होती है।सेलेरी-डीजेगो: सेलेरी बनाम डीजेंगो प्रबंधन कमांड

अब से मैं django प्रबंधन आदेशों का उपयोग कर रहा हूं और crontabs का उपयोग कर उन्हें चला रहा हूं। मैं इस बारे में पढ़ रहा था कि अजवाइन क्या कर सकता है, लेकिन मुझे को समझना वाकई मुश्किल है, मुझे अजवाइन का उपयोग क्यों करना चाहिए?

इसके अलावा यह मेरे django प्रोजेक्ट के लिए और डेटाबेस डेटाबेस के लिए एक और अतिरिक्त होगा, क्या यह प्रदर्शन को धीमा कर देता है?

उत्तर

5

मुझे नहीं लगता कि आपको सेलेरी का उपयोग करना चाहिए, क्रॉन अभी भी आपके मामले में ठीक लगता है, लेकिन आप सेलेरी को आज़मा सकते हैं।

मेरे लिए, सेलेरी [asynchronous] [वितरित] कार्य कतारों के लिए एक पायथन मॉड्यूल है। यह आपको कई मशीनों पर चलने वाली कई प्रक्रियाओं में लंबे कार्यों को प्रेषित करने की अनुमति देता है (लेकिन एक मशीन पर एक प्रक्रिया अभी भी ठीक है)। जब आपको कुछ ऐसा करने की आवश्यकता होती है जिसमें समय लगता है (जैसे थंबनेल जेनरेट करें, बाहरी एपीआई से बात करें या जटिल रिपोर्ट जेनरेट करें), तो आप अपने उपयोगकर्ता के HTTP अनुरोध को अवरुद्ध किए बिना पृष्ठभूमि में ऐसा करने के लिए सेलेरी का उपयोग कर सकते हैं। crontab से अधिक अजवाइन की

कुछ लाभ:

  • आप एसिंक्रोनस रूप से कार्य चला सकते हैं, वास्तव में जब कम से कम एक अजवाइन कार्यकर्ता नि: शुल्क है
  • यह कई प्रक्रियाओं/मशीनों
  • celerybeat है के लिए अच्छी तरह पैमाने पर करता है क्रोंटैब की तरह; लेकिन आप अपने settings.py में अजगर सिंटेक्स के उपयोग को देखते हुए datetime पर कार्य या अंतराल निर्धारित कर सकते हैं
  • आप
  • वहाँ Flower तरह निगरानी उपकरण आपको एक सभ्य दे देंगे जो कर रहे हैं (प्राथमिकता के कुछ प्रकार के लिए उदाहरण के लिए) दर सीमा लागू कर सकते हैं क्या कार्य विफल रहे हैं और क्या

अजवाइन के कुछ नुकसान सफल रहा है के विचार:

  • सेटअप में कुछ समय लग सकता है - आप सेटअप कतार दलाल करने के लिए है और उत्पादन में श्रमिकों को नारकीय; क्रॉन पहले से ही
  • प्रत्येक कार्यकर्ता प्रक्रिया आपके डीजेगो प्रक्रिया के समान रैम का उपयोग करने की संभावना है, इससे आपको $$ खर्च हो सकता है या आपके पास सीरीरी चलाने के लिए पर्याप्त RAM नहीं हो सकती है, कहें, एडब्लूएस फ्री स्तरीय

और यदि यह केवल ई-मेल भेजने के बारे में है, तो आप Postmark (मैं उनसे संबद्ध नहीं हूं) जैसी भुगतान सेवा का उपयोग करने पर विचार कर सकता हूं, जो आपके लिए ई-मेल थ्रॉटलिंग को संभालेगा।

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