अजवाइन बनाम आरक्यू [बंद] का उपयोग करने के लिए पेशेवरों और विपक्ष


101

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

  1. सेलेरी बनाम आरक्यू का उपयोग करने के लिए क्या पेशेवरों और विपक्ष।
  2. सेलेरी बनाम आरक्यू का उपयोग करने के लिए उपयुक्त परियोजनाओं / कार्य के किसी भी उदाहरण।

अजवाइन बहुत जटिल लग रहा है, लेकिन यह पूर्ण विशेषताओं वाला समाधान है। वास्तव में मुझे नहीं लगता कि मुझे इन सभी विशेषताओं की आवश्यकता है। दूसरी तरफ से आरक्यू बहुत सरल है (जैसे कॉन्फ़िगरेशन, एकीकरण), लेकिन ऐसा लगता है कि इसमें कुछ उपयोगी सुविधाओं का अभाव है (उदाहरण के लिए कार्य को फिर से करना, कोड ऑटो-रीलोडिंग)


3
दुर्भाग्य से, इस तरह का प्रश्न इस साइट के प्रारूप में फिट नहीं है, FAQ देखें । इस तरह के प्रश्न अस्पष्ट उत्तरों की ओर ले जाते हैं जो बहुत जल्दी आउटडेटेड हो जाते हैं। अगर हम आपकी किसी विशेष समस्या में मदद कर सकते हैं, तो बेझिझक एक और प्रश्न पोस्ट करें!
मार्टिन पीटर्स

BTW मुझे ऐसा लगता है जैसे आप कार्यों को रद्द कर सकते हैं, यहां तक ​​कि
rq-

जवाबों:


141

यहाँ मैंने वही पाया है जो इस सटीक प्रश्न का उत्तर देने की कोशिश कर रहा है। यह शायद व्यापक नहीं है, और कुछ बिंदुओं पर गलत भी हो सकता है।

संक्षेप में, RQ को चारों ओर सरल बनाने के लिए डिज़ाइन किया गया है। अजवाइन को और अधिक मजबूत बनाया गया है। वे दोनों उत्कृष्ट हैं।

  • प्रलेखन। आरक्यू का प्रलेखन जटिल होने के बिना व्यापक है, और परियोजना की समग्र सादगी को प्रतिबिंबित करता है - आप कभी भी खो या भ्रमित महसूस नहीं करते हैं। अजवाइन का प्रलेखन भी व्यापक है, लेकिन जब आप पहली बार चीजों को स्थापित कर रहे हैं तो इसे फिर से दौरा करने की उम्मीद है क्योंकि आंतरिक रूप से बहुत अधिक विकल्प हैं
  • की निगरानी करना। अजवाइन के फूल और RQ डैशबोर्ड दोनों सेटअप करने के लिए बहुत सरल हैं और आपको उन सभी सूचनाओं का कम से कम 90% देना चाहते हैं जो आप कभी भी चाहते हैं

  • ब्रोकर समर्थन। अजवाइन स्पष्ट विजेता है, आरक्यू केवल रेडिस का समर्थन करता है। इसका मतलब "ब्रोकर क्या है" पर कम प्रलेखन है, लेकिन इसका मतलब यह भी है कि यदि आप रेडिस अब आपके लिए काम नहीं करते हैं तो आप भविष्य में ब्रोकरों को स्विच नहीं कर सकते हैं। उदाहरण के लिए, इंस्टाग्राम ने रेडिस और रैबिटबैंक दोनों को सेलेरी के साथ माना । यह महत्वपूर्ण है क्योंकि अलग-अलग दलालों की अलग-अलग गारंटी होती है जैसे कि रेडिस (लेखन के अनुसार) 100% गारंटी नहीं दे सकता है कि आपके संदेश वितरित किए गए हैं।

  • प्राथमिकता कतार। RQs प्राथमिकता कतार मॉडल सरल और प्रभावी है - कार्यकर्ता क्रम में कतारों से पढ़ते हैं । अजवाइन को अलग-अलग कतारों से उपभोग करने के लिए कई श्रमिकों को कताई करने की आवश्यकता होती है। दोनों काम पर पहुंचते हैं

  • ओएस का समर्थन। अजवाइन यहाँ स्पष्ट विजेता है, क्योंकि RQ केवल उन्निक्स सिस्टम का समर्थन करने वाली प्रणालियों पर चलता forkहै

  • भाषा समर्थन। आरक्यू केवल पायथन का समर्थन करता है, जबकि सेलेरी आपको एक भाषा से दूसरी भाषा में कार्य भेजने देता है

  • एपीआई। अजवाइन बेहद लचीला (मल्टीपल रिजल्ट बैकएंड, अच्छा कॉन्फिग फॉर्मेट, वर्कफ्लो कैनवस सपोर्ट) है लेकिन स्वाभाविक रूप से यह शक्ति भ्रामक हो सकती है। इसके विपरीत, आरक्यू आपी सरल है।

  • उपशीर्षक समर्थन करते हैं। अजवाइन उपमाओं का समर्थन करता है (जैसे मौजूदा कार्यों के भीतर से नए कार्यों का निर्माण)। मुझे नहीं पता कि आरक्यू करता है या नहीं

  • सामुदायिकता और स्थिरता। अजवाइन शायद अधिक स्थापित है, लेकिन वे दोनों सक्रिय परियोजनाएं हैं। लेखन के रूप में, सेलेरी में जीथब पर ~ 3500 सितारे हैं जबकि आरक्यू में ~ 2000 है और दोनों परियोजनाएं सक्रिय विकास दिखाती हैं

मेरी राय में, सेलेरी उतना जटिल नहीं है क्योंकि इसकी प्रतिष्ठा आपको विश्वास करने के लिए प्रेरित कर सकती है, लेकिन आपको आरटीएफएम करना होगा।

तो, क्यों कोई RQ के लिए (यकीनन अधिक पूर्ण विशेषताओं वाले) अजवाइन का व्यापार करने को तैयार होगा? मेरे दिमाग में, यह सब सादगी के लिए नीचे आता है। Redis + Unix में खुद को सीमित करके, RQ सरल प्रलेखन, सरल कोडबेस और एक सरल एपीआई प्रदान करता है। इसका मतलब है कि आप (और आपकी परियोजना के लिए संभावित योगदानकर्ता) आपके द्वारा ध्यान में रखे कोड के बारे में ध्यान केंद्रित कर सकते हैं, बजाय इसके कि आप अपनी कार्यशील मेमोरी में कार्य कतार प्रणाली के बारे में विवरण रखें। हम सभी की एक सीमा होती है कि एक बार में कितने विवरण हमारे सिर में हो सकते हैं, और कार्य पंक्ति विवरण रखने की आवश्यकता को दूर करके आरक्यू आपको उस कोड पर वापस जाने देता है जिसकी आपको परवाह है। यह सरलता अंतर-भाषा कार्य कतारों, विस्तृत ओएस समर्थन, 100% विश्वसनीय संदेश गारंटी और संदेश दलालों को आसानी से स्विच करने की क्षमता जैसी सुविधाओं की कीमत पर आती है।


1
Subtask support. Celery supports subtasks (e.g. creating new tasks from within existing tasks). I don't know if RQ does २४.०५.२०१ ९ के अनुसार आरक्यू सबटुक (कतार के लिए आंतरिक कॉल) का भी समर्थन करता है।
एस्कर्ड

1

अजवाइन है कि जटिल नहीं है। इसके मूल में, आप चरण विन्यास को चरणबद्ध रूप से करते हैंtutorials , एक celeryउदाहरण बनाते हैं , @celery.taskफिर अपने कार्य को सजाने के साथ कार्य को चलाते हैं my_task.delay(*args, **kwargs)

अपने स्वयं के आकलन से देखते हुए, ऐसा लगता है कि आपको अभाव (मुख्य) सुविधाओं के बीच चयन करना होगा या कुछ अतिरिक्त लटकाए रखना होगा। यह मेरी पुस्तक में एक विकल्प के रूप में मुश्किल नहीं है।


46
मैं आपके आकलन से पूरी तरह असहमत हूं। मैं अपने दस्तावेज़ों और कई ब्लॉग पोस्टों को पढ़ने के बाद भी सेलेरी को अपने डेबियन सर्वर पर सफलतापूर्वक चलाने के लिए कुछ हफ़्ते तक संघर्ष करता रहा। मेरे पास मुख्य समस्या यह थी कि यदि आपको अपने कॉन्फ़िगरेशन में कुछ गलत मिला, तो अजवाइन समस्या पर कोई प्रतिक्रिया नहीं देगी । और जब मैंने आखिरकार इसे काम करना शुरू कर दिया, तो मुझे कुछ प्रकार के ओएस OSError गहरे सेलेरी स्टैक में नीचे मिलना शुरू हो गए। मैंने गितुब पर एक मुद्दा पोस्ट किया लेकिन कोई भी मदद नहीं कर सका। मैं दस फुट के पोल के साथ फिर से सेलेरी को नहीं छूऊंगा।
रे

2
एफिन 'OSError मैन। No such file or directory। मुझे कोई सुराग नहीं है कि कहां से शुरू करें। मैं आज रात पहली बार आरक्यू की कोशिश करूँगा।
MiniGunnR
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.