2012-04-09 25 views

उत्तर

2

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

मैंने पूछा:

यह कहना है कि "अजवाइन एक QueueWrapper/QueueFramework जो दूर होने आंतरिक queueManagement/queueAdministration गतिविधियों का प्रबंधन करने के लिए आदि की जटिलता लेता है कि" उचित होगा?

मैं पुस्तक भाषा को समझता हूं जो कहता है "सेलेरी एक कार्य कतार है" और "खरगोश एमक्यू एक संदेश ब्रोकर है"। हालांकि, यह पहली बार सेलरी उपयोगकर्ता के रूप में थोड़ा उलझन में लगता है क्योंकि हम हमेशा पर 'कतार' होने के लिए RabbitMQ को जानते हैं।

कृपया समझा कैसे/क्या अजवाइन RabbitMQ

A response मैं अबू अशरफ से मिला Masnun

टास्क पंक्ति और संदेश कतार के साथ constrast में करता है में मदद करते हैं। RabbitMQ एक "एमक्यू" है। यह संदेश प्राप्त करता है और संदेश भेजता है।

सेलेरी एक कार्य कतार है। यह उनके संबंधित डेटा के साथ कार्यों को प्राप्त करता है, उन्हें चलाता है और परिणाम प्रदान करता है।

चलो एक पल के लिए सेलेरी भूल जाओ। चलो RabbitMQ के बारे में बात करते हैं। क्या हम आमतौर पर करेंगे? हमारा Django/Flask ऐप कतार में एक संदेश भेजेगा। हमारे पास कुछ कर्मचारी चलेंगे जो कुछ कतारों में नए संदेशों की प्रतीक्षा करेंगे। जब कोई नया संदेश आता है, तो यह कार्य करता है और कार्यों को संसाधित करता है।

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

आप क्रेल नौकरी के विकल्प के रूप में सेलेरी का भी उपयोग कर सकते हैं (हालांकि मैं वास्तव में इसे पसंद नहीं करता)!

Another response मैं Zumba

जुआन फ्रांसिस्को काल्डेरोन से मिला मेरी समझ है कि अजवाइन सिर्फ अमूर्त की एक बहुत ही उच्च स्तर की घटनाओं के निर्माता/उपभोक्ता को लागू करने की है। rabbitmq के साथ उदाहरण के लिए आपको काम करने के लिए कई दर्दनाक चीजों को लेता है। अजवाइन स्वयं कतार नहीं है। इवेंट कतार आपकी पसंद की प्रणाली में संग्रहीत हैं, अजवाइन आपको उत्पादक/उपभोक्ता को स्क्रैच से लिखने के बिना ईवेंट के साथ काम करने में मदद करता है।

अजवाइन एक कतार आवरण/फ्रेमवर्क जो/वास्तुकला कि आने अंतर्निहित AMQP तंत्र का प्रबंधन करने के होने की जटिलता दूर ले जाता है:

आखिरकार, यहाँ क्या मैं अपने अंतिम सीखने के रूप में घर ले है ऑपरेटिंग खरगोश एमक्यू के साथ सीधे

3

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

एक संदेश कतार प्रक्रियाओं, धागे, सिस्टम के बीच जानकारी साझा करने के लिए एक तंत्र है।

एक ऐपइंजिन कार्य कतार एक ऐपइंजिन एप्लिकेशन के लिए खुद का कहना है, मुझे ऐसा करने की ज़रूरत है, लेकिन मैं इसे बाद में क्लाइंट अनुरोध के संदर्भ के बाहर करने जा रहा हूं।

+3

कोई संदेश कतार और ऐप इंजन पर पुल कतार के बीच कोई कार्यात्मक अंतर नहीं है (जिसे मैं जानता हूं)। –

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