मैं RabbitMQ का उपयोग कर रहा हूं और मेरे पास एक कतार है जिसमें ईमेल संदेश हैं। मेरी उपभोक्ता सेवा संदेश भेजती है और उन्हें भेजने का प्रयास करती है। यदि, किसी भी कारण से, मेरा उपभोक्ता संदेश नहीं भेज सकता है, तो मैं फिर से भेजने के लिए संदेश को फिर से कतारबद्ध करना चाहता हूं। मुझे एहसास है कि मैं एक बुनियादी नाटक कर सकता हूं और अपेक्षित ध्वज को सत्य मान सकता हूं, हालांकि, मैं अनिश्चित काल तक संदेश की आवश्यकता नहीं लेना चाहता हूं (कहें, अगर हमारी ईमेल प्रणाली नीचे जाती है, तो मैं निरंतर संदेशों की आवश्यकता नहीं लेना चाहता)। मैं एक सीमित संख्या को परिभाषित करना चाहता हूं कि मैं संदेश को फिर से भेजने की आवश्यकता कर सकता हूं। मैं ईमेल संदेश ऑब्जेक्ट पर कोई फ़ील्ड सेट नहीं कर सकता, हालांकि, जब मैं इसे हटा देता हूं और एक नाटक भेजता हूं। कतार में संदेश पर अद्यतन फ़ील्ड मौजूद नहीं है। क्या कोई अन्य तरीका है जिसमें मैं इसका संपर्क कर सकता हूं? अग्रिम में धन्यवाद।मैं RabbitMQ में कई पुनः प्रयास प्रयास कैसे सेट करूं?
उत्तर
ऐसी कोई सुविधा नहीं है जैसे RabbitMQ (साथ ही साथ AMQP प्रोटोकॉल में) प्रयास करें।
संभव समाधान को लागू करने के पुन: प्रयास करें प्रयास व्यवहार की सीमा:
फिर से डिलीवर संदेश अगर यह पहले से redelivered नहीं किया गया था (जाँच
redelivered
पैरामीटर परbasic.deliver
विधि - अपने पुस्तकालय इस के लिए कुछ इंटरफेस होना चाहिए) और इसे छोड़ और फिर dead letter exchange में पकड़ें, फिर किसी भी तरह से प्रक्रिया करें।प्रत्येक बार संदेश को फिर से प्रकाशित नहीं किया जा सकता है, लेकिन
x-redelivered-count
कहें (आप किसी भी नाम को चुन सकते हैं) कहें)। इस मामले में पुनर्विक्रेताओं पर नियंत्रण प्राप्त करने के लिए आपको उस फ़ील्ड को जांचना होगा, जिसे आपने सेट किया है चाहे वह कुछ सीमा तक पहुंच जाए (शीर्ष या नीचे - 0 मेरा choise, ए-लाttl
आईपी हेडर में टीसीपी/आईपी से) है।स्टोर संदेश अद्वितीय कुंजी (यूयूआईडी कहें, लेकिन आपको संदेश प्रकाशित करते समय इसे मैन्युअल रूप से सेट करना होगा) रेडिस, मेमकैच या अन्य स्टोरेज में, यहां तक कि mysql में redeliveries गिनती के साथ-साथ प्रत्येक पुनर्विक्रेता वृद्धि/इस मूल्य को कम करने पर जब तक यह सीमा तक नहीं पहुंच जाता है।
(वास्तविक गीक के लिए) प्लगइन लिखें जो आपके जैसे व्यवहार को लागू करेगा।
# 3 के समर्थक है कि कतार सिर में redelivered संदेश मनाने। यह महत्वपूर्ण है यदि आपके पास लंबी कतार है या संदेश संदेश आपके लिए महत्वपूर्ण है (ध्यान दें, कि पुनर्विक्रय सख्त संदेश आदेश तोड़ देंगे, विवरण के लिए आधिकारिक दस्तावेज़ देखेंगे या this question on SO)।
पी.एस .:
इस विषय में similar answer है, लेकिन php में। इसे देखो, शायद यह आपको थोड़ा सा मदद करता है (इसे शब्दों से पढ़ना शुरू करें "चक्र पुनर्विक्रेता समस्या से निपटने के लिए कई तकनीकें हैं"।
धन्यवाद मुझे लगता है कि मैं मृत पत्र विनिमय मार्ग पर जाऊंगा। – user2689570
इसके अलावा, अगर आपको संदेश के समय को सीमित करने में कोई समय नहीं लगता है, तो रीट्रीज़ की संख्या सीमित करने के बजाय, आप हमेशा एक टीटीएल सेट कर सकते हैं। –
- 1. पुनः प्रयास विफल मोचा परीक्षण
- 2. टाइमआउट पर पुनः प्रयास करें?
- 3. एक http कनेक्शन पुनः प्रयास
- 4. उसी कार्यकर्ता का उपयोग करके सेलेरी पुनः प्रयास कैसे करें?
- 5. अनुरोध पर स्विफ्ट "पुनः प्रयास करें" तर्क
- 6. एक आरएक्स "पुनः प्रयास करें" एक्सटेंशन विधि
- 7. विफलता पर jquery AJAX पुनः प्रयास करें
- 8. सामान्य उद्देश्य सी # में टाइमआउट के साथ प्रयास करें और पुनः प्रयास करें?
- 9. मैं कक्षा के सदस्यों पर कैसे पुन: प्रयास करूं?
- 10. प्रयास
- 11. प्रयास
- 12. प्रयास
- 13. Delayed_job में मैन्युअल रूप से पुनः प्रयास करें
- 14. मैं एक कॉन्स्टेंट वेक्टर पर कैसे पुन: प्रयास करूं?
- 15. सी # मैं रजिस्ट्री के माध्यम से कैसे पुन: प्रयास करूं?
- 16. अपवाद, और कनेक्शन रीसेट होने पर पुनः प्रयास कैसे करें?
- 17. विफल होने पर urllib2.request को पुनः प्रयास कैसे करें?
- 18. Okhttp हमेशा विफल कनेक्शन को पुनः प्रयास कर रहा है
- 19. संगठन मोड से प्रयास प्रयास और घड़ियों?
- 20. प्रयास विंडो में पदानुक्रम
- 21. क्या HttpStatus स्थिति कोड के आधार पर वसंत-पुनः प्रयास में RetryPolicy सेट करना संभव है?
- 22. पेपैल के पुनरावर्ती भुगतान, छोड़े गए 5 दिनों के समय में पुनः प्रयास करेंगे। मैं इसे अभी कैसे कोशिश करूं?
- 23. आरएक्स पुनः प्रयास() अपेक्षित काम नहीं कर रहा है
- 24. डिफ़ॉल्ट: चेतावनी: रिमोट कनेक्शन डिस्कनेक्ट। पुनः प्रयास कर रहा
- 25. एन्क्रिप्शन जानकारी अनुपलब्ध है। पुनः प्रयास करें। TestFlight
- 26. वेबजब्स असफल कतार संदेश पुनः प्रयास नहीं कर रहे हैं
- 27. सेलेरी को पुनः प्रयास करना विफल रहा कार्य जो चेन
- 28. XMLHttpRequest त्रुटि 0 उचित प्रबंधन (अनुरोध पुनः प्रयास करें)
- 29. प्रयास प्रगति
- 30. गिट: http अनुरोध विफल होने पर पुनः प्रयास करें
यह ब्लॉग पोस्ट यह बताता है कि आप इसका उपयोग क्यों करना चाहते हैं इन प्रकार की समस्याओं को हल करने के लिए .net में RabbitMQ के शीर्ष पर NServiceBus या MassTransit जैसे ढांचे: https://www.make-awesome.com/2017/12/sure-you-can-just-use-rabbitmq/ –