0 सवाल: अजवाइन का उपयोग कर संदेश प्रसारित करने में असमर्थ

पर बनाया गया सवाल Wed, May 8, 2019 12:00 AM

मैं प्रसारण का उपयोग करके प्रसारण के समर्थन में अजवाइन के निर्माण का उपयोग करने की कोशिश कर रहा हूं और खरगोश के दलाल के रूप में उपयोग कर रहा हूं। मैं डिफ़ॉल्ट डायरेक्ट एक्सचेंज का उपयोग करके संदेश को सफलतापूर्वक प्रकाशित और प्राप्त करने में सक्षम रहा हूं, अब मैं उस प्रशंसक एक्सचेंज का उपयोग करने की कोशिश कर रहा हूं जो खरगोशबिट प्रदान करता है। इसके लिए ऐसा लगता है कि अजवाइन में ब्रॉडकास्ट क्लास का उपयोग करके एक अंतर्निहित समर्थन है।

मेरी अजवाइन की बनावट यह पसंद करती है:

app.conf.task_queues = (Broadcast('broadcast_tasks'),)

app.conf.task_routes = {
  'tasks.tasks.sync_channels': {
      'queue': 'broadcast_tasks',
      'exchange': 'broadcast_tasks'
  }
}

और इसके बाद मैंने अपने कार्य को एप्लिकेशन /कार्य /कार्यक्षेत्र में परिभाषित किया है

@app.task(name='sync_channels')
def sync_channels(data):
   logger.debug('Received here')
   pass

यहां बताया गया है कि मैं अजवाइन का उपयोग करके खरगोश को संदेश भेज रहा हूं:

from app.tasks.tasks import sync_channels
sync_channels.delay([])

जब मैं rabbitmq प्रबंधन UI खोलता हूं, तो मैं देख सकता हूं कि "प्रसारण_टैक्शंस" नाम से एक प्रशंसक एक्सचेंज बनाया गया है, लेकिन जब मैं सिंक_चैनल्स कार्य को संदेश भेजने की कोशिश करता हूं, तो यह स्वचालित रूप से एक डिफ़ॉल्ट (प्रत्यक्ष) एक्सचेंज (डिफ़ॉल्ट) बनाता है पंक्ति डिफ़ॉल्ट एक्सचेंज से जुड़ी होती है और सिंक_चैनल्स कार्य के लिए मेरे सभी भविष्य के संदेश डिफ़ॉल्ट एक्सचेंज में धकेल दिए जाते हैं। ऐसा लगता है कि किसी तरह मैं उस प्रसारण सुविधा को कॉन्फ़िगर करने में सक्षम नहीं हूं जो अजवाइन प्रदान करता है।

नीचे कुछ स्क्रीनशॉट हैं जो आपको समस्या को समझने में मदद कर सकते हैं:

 Rabbitmq प्रबंधन पृष्ठ जब अजवाइन जुड़ा नहीं है जब मैं अजवाइन का काम शुरू करता हूं तो एक नया प्रसारण प्रसारण_का नाम दिया जाता है। अजवाइन द्वारा बनाई गई एक कतार जो प्रसारण_टैक्स एक्सचेंज को बांधती है [!] जब मैं सिंक_चैनल्स कार्य के लिए कुछ संदेश प्रकाशित करने का प्रयास करता हूं तो एक डिफ़ॉल्ट एक्सचेंज और कतार बनाई जाती है

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

अग्रिम धन्यवाद

    
0
0 उत्तर                              0                         
स्रोत रखा गया यहाँ