आपको उन सभी कतारों की सदस्यता लेने की आवश्यकता है जिनके संदेश भेजे गए हैं, और उन्हें एके के साथ उपभोग करें।
उदाहरण के लिए यदि आप रूटिंग कुंजी के रूप में "परीक्षण" के साथ एक विषय विनिमय में प्रकाशित करते हैं, और 3 लगातार पंक्तियां हैं जो "परीक्षण" की सदस्यता लेती हैं तो आपको उन तीन कतारों का उपभोग करने की आवश्यकता होगी। यह एक और कतार जोड़ना बेहतर हो सकता है जो आपकी उपभोक्ता प्रक्रिया भी सुनती है, और उन संदेशों को अनदेखा करने के लिए कहें।
एक विकल्प, चूंकि आप RabbitMQ का उपयोग कर रहे हैं, एक कस्टम एक्सचेंज प्लगइन लिखना है जो सभी कतारों को साफ़ करने के लिए बैंड निर्देश से कुछ स्वीकार करेगा। उदाहरण के लिए आप उस एक्सचेंज को एक विशेष संदेश हेडर पढ़ सकते हैं जो यह बताता है कि यह संदेश उन सभी कतारों को साफ़ करने के लिए कहता है जिनके लिए यह संदेश नियत है। इसके लिए एरलांग कोड लिखने की आवश्यकता है, लेकिन 4 अलग-अलग विनिमय प्रकार लागू किए गए हैं, इसलिए आपको केवल सबसे समान प्रतिलिपि बनाने और नए बाहवीरों के लिए कोड लिखने की आवश्यकता होगी। यदि आप केवल इसके लिए कस्टम हेडर का उपयोग करते हैं, तो संदेश का मुख्य भाग उपभोक्ताओं के लिए एक सामान्य संदेश हो सकता है।
सारांश में:
1) प्रकाशक संदेशों खुद 2) का उपभोग करने की जरूरत है प्रकाशक एक विशेष कतार संदेश 3 अनदेखी करने के लिए उपभोक्ताओं को बताने के लिए) प्रकाशक भेज सकते हैं में एक विशेष संदेश भेज सकते हैं एक कस्टम एक्सचेंज के लिए एक विशेष संदेश जो उपभोक्ताओं को यह विशेष संदेश भेजने से पहले कतारों से किसी भी मौजूदा संदेश को साफ़ करेगा।
स्रोत
2011-07-18 05:16:16
नहीं, यह एक अलग समस्या हल करता है। मुझे उपभोक्ता पक्ष में एक संदेश को खारिज करने की आवश्यकता नहीं है, मैं निर्माता पक्ष से अपनी डिलीवरी रद्द करना चाहता हूं, ताकि संदेश उपभोक्ता तक नहीं पहुंच सके जैसे कि यह कभी अस्तित्व में नहीं था। मेरी समस्या में, उपभोक्ता यह तय नहीं कर सकता कि कोई संदेश खारिज कर दिया जाना चाहिए या नहीं। – jkff
यदि संदेश सफलतापूर्वक प्रकाशित होते हैं और आपको उन्हें ज्ञात कतार से निकालना होगा, तो इसे छोड़ दें और उन्हें निर्माता में उपभोग करें। –