मैंसेलेरी कार्यकर्ता: सभी कतारों से कैसे उपभोग करें?
- सेट
CELERY_CREATE_MISSING_QUEUES = True
- नहीं
CELERY_QUEUES
- परिभाषित
CELERY_DEFAULT_QUEUE = 'default'
- एक कस्टम रूटर वर्ग कि मक्खी पर मार्गों के रूप में इस टिकट में दिखाया गया है बनाता है (https://github.com/celery/celery/issues/150) (प्रत्यक्ष प्रकार के) में परिभाषित किया गया है ।
मुझे लगता है कि कस्टम राउटर द्वारा दिए गए मार्ग में नई कतार बनाई गई है जो मुझे लगता है कि CELERY_CREATE_MISSING_QUEUES
की वजह से है।
कार्यकर्ता नोड है कि मैं चलाने में अब, मैं -Q
तर्क पारित नहीं है और यह 'डिफ़ॉल्ट' कतार जो प्रलेखन के साथ लाइन में हो रहा है से केवल खपत -
डिफ़ॉल्ट यह तक CELERY_QUEUES सेटिंग में परिभाषित सभी कतारों से उपभोग करेगा (जो कि कतार नामक सेलेरी के लिए डिफ़ॉल्ट निर्दिष्ट नहीं है)।
क्या मेरे कार्यकर्ता नोड को सभी कतारों से उपभोग करने के लिए कोई तरीका है जिसमें गतिशील रूप से बनाए गए हैं?
धन्यवाद,
धन्यवाद। वह दिलचस्प था। हां, मैं RabbitMQ का उपयोग करता हूं और मैं हमेशा गतिशील कतार रखने की योजना बना रहा था। मैं उम्मीद कर रहा था कि मैं किसी प्रकार के वाइल्डकार्ड पैटर्न का उपयोग करके कार्यकर्ता को सभी कतारों से उपभोग करने के लिए कह सकता हूं। मैं अब आपके सुझावों का प्रयास करने जा रहा हूं। प्रश्न - यह देखते हुए कि श्रमिक अलग-अलग सर्वरों पर चल रहे हैं, संदेश ब्रोकर एकमात्र आम टुकड़ा है, app.control.add_consumer (...) कर्मचारियों को जानकारी कैसे संवाद करता है? – ksrini
@ksrini हाँ मैं यह पता लगाने के लिए स्रोत कोड खोज रहा था कि क्या हम वाइल्डकार्ड पैटर्न का उपयोग कर सकते हैं, लेकिन जिस विधि को कतारों को उपभोग करने के लिए सेट किया जाता है, उसे अल्पविराम से अलग पंक्तियों की एक सूची की आवश्यकता होती है। और नियंत्रण आदेश ब्रोकर (RabbitMQ) का उपयोग श्रमिकों को संदेशों को प्रसारित करने के लिए मॉड्यूल 'celery.app.control' जांचते हैं। – Pierre
add_consumer नियंत्रण कमांड का उपयोग कर आपके सुझाए गए दृष्टिकोण काम किया! धन्यवाद!मैं केवल add_consumer का आह्वान करना चाहूंगा यदि मजदूर पहले से ही उस कतार से उपभोग नहीं कर रहे हैं क्योंकि add_consumer में कुछ समय लगता है (लगभग 1-2 सेकंड) अगर उत्तर = सही है और मैं राउटर से ऐसा करने की योजना बना रहा हूं जहां मैं निर्धारित करता हूं मार्ग के हिस्से के रूप में नई कतार। अगर मैं उत्तर = गलत सेट करता हूं, तो यह तेज़ है। क्या आप add_consumer invoking के साथ कोई समस्या देखते हैं भले ही श्रमिक पहले से ही उस कतार से उपभोग कर रहे हों? – ksrini