मैं हाल ही में सेलेरी के साथ काम कर रहा हूं और मुझे यह पसंद नहीं है। यह विन्यास गन्दा, जटिल और खराब दस्तावेज है।सेलेरी प्रसारण बनाम RabbitMQ fanout
मैं एक निर्माता से सेलेरी के साथ कई उपभोक्ताओं तक प्रसारण संदेश भेजना चाहता हूं। मुझे क्या भ्रमित करता है Celery शर्तों और अंतर्निहित परिवहन RabbitMQ के बीच विसंगति है।
RabbitMQ में आप एक एकल fanout Exchange और अधिक संदेशों का प्रसारण करने के कतार हो सकता है:
लेकिन अजवाइन में शर्तों सब अव्यवस्थित हैं: यहाँ आप एक broadcast Queue, जो कई के लिए संदेश भेजता है हो सकता है उपभोक्ताओं:
मैं भी समझ में नहीं आता, कैसे अजवाइन प्रसारण कतार बिल्कुल काम माना जाता है, कारण कई उपभोक्ताओं के साथ RabbitMQ कतार लोड संतुलन के लिए हैं। तो RabbitMQ में यदि एकाधिक उपभोक्ता (यानी उपभोक्ताओं का एक पूल) एक ही कतार से जुड़े होते हैं, तो केवल एक उपभोक्ता संदेश प्राप्त करेगा और संसाधित करेगा, which is called round robin in RabbitMQ docs।
इसके अलावा, प्रसारण पर सेलेरी दस्तावेज वास्तव में अपर्याप्त है। ब्रॉडकास्ट कतार, fanout या नहीं के लिए मैं किस प्रकार के RabbitMQ एक्सचेंज निर्दिष्ट करना चाहिए? क्या आप एक पूर्ण उदाहरण दे सकते हैं?
तो, मैं जो पूछ रहा हूं वह है (1) सेलरी में ब्रॉडकास्ट कतारों की अवधारणा और कार्यान्वयन की स्पष्टीकरण और (2) ब्रॉडकास्ट कतार कॉन्फ़िगरेशन का एक संपूर्ण उदाहरण है। धन्यवाद।
क्या इससे मदद मिलती है? http://celery.readthedocs.org/en/latest/userguide/routing.html#exchanges-queues-and-routing-keys ऐसा लगता है कि सेलेरी में 'कतार' परिभाषा में एक्सचेंज शामिल है, इसलिए संभवतः आप एक सेलेरी कतार को परिभाषित कर सकते हैं एक fanout एक्सचेंज के शीर्ष पर जो कई RabbitMQ कतारों का अंतर्निहित कार्यान्वयन होगा। इस मामले में मुझे लगता है कि आप सेलेरी कॉन्फ़िगरेशन में 'प्रसारण' कतार नहीं चाहते हैं, जब तक कि आप वास्तव में एक ही कार्य को प्रसंस्करण करने वाले एकाधिक श्रमिकों को – Anentropic
@ एंट्रोपिक उत्तर के लिए धन्यवाद, मैं उस पृष्ठ का व्यापक रूप से उपयोग कर रहा हूं, लेकिन जैसा कि आप देख सकते हैं, ब्रॉडकास्ट कतार की परिभाषा 'CELERY_QUEUES = (प्रसारण (' प्रसारण_टास्क ') है,)' और यह सामान्य 'CELERY_QUEUES = (कतार (नाम, विनिमय, रूटिंग_की) के विपरीत एक्सचेंज निर्दिष्ट नहीं करता है,) उदाहरणों में, आपने इंगित किया। मैं एपीआई संदर्भ में 'प्रसारण' की तलाश में हूं, लेकिन इसे नहीं मिला। –
जो मैं कह रहा था वह है: मुझे नहीं लगता कि आप प्रसारण कतार का उपयोग करना चाहते हैं। मुझे लगता है कि आप 'एक्सचेंज ('फैनआउट')' विनिमय प्रकार – Anentropic