मैं लॉग इन विफल संदेश के लिए एक अच्छा समाधान ढूंढ रहा हूं, त्रुटि कतार के साथ सौदा किए बिना पुनः प्रयास सीमा पार हो जाने के ठीक बाद। मैं अब तक क्या पाया है:masstransit में असफल संदेश लॉग कैसे करें?
- मैं InMemoryInboundMessageTracker से विरासत और ओवरराइड कर सकते हैं IsRetryLimitExceeded, लेकिन यह मतलब नहीं आईडी को छोड़कर संदेश ही बारे में कोई जानकारी में।
- मैं IInboundMessageInterceptor लागू कर सकते हैं और पूर्व/PostDispatch में IConsumeContext मिलता है, लेकिन इस बिंदु वहाँ सफलता के बारे में कोई जानकारी नहीं है पर/असफल।
तो एक समाधान के रूप में, मैं में IConsumeContext प्राप्त कर सकते हैं PreDispatch एक कैश के कुछ प्रकार में रख तो यह में एक कैश से बाहर निकलने IsRetryLimitExceeded जब पुन: प्रयास करें सीमा पार हो गई है।
तरीके ऐसे आदेश में कहा जाता है: IsRetryLimitExceeded -> PreDispatch -> PostDispatch
तो मैं एक कैश से सफलतापूर्वक संसाधित संदेश को हटाने के लिए एक अच्छी जगह नहीं मिल रहा।
बेशक मैं प्रतिबंधित आकार के साथ एक कैश का उपयोग कर सकता हूं लेकिन यह पूरा समाधान अजीब लगता है।
इस मामले पर किसी भी विचार की सराहना की जाएगी।
हां में है, यह लागू करने/अधिभावी IsRetryLimitExceeded के साथ मामला है। – amstix
यह _IInboundMessageTracker_ इंटरफ़ेस से है। संदेश आईडी के अलावा संदेश और संदर्भ का उपभोग करने के बारे में कोई जानकारी नहीं है, लेकिन कुछ उपयोगी विधियां हैं _MessageWasReceivedSuccessfully_ और _MessageWasMovedToErrorQueue_ जिसका उपयोग कैश से IConsumeContext को निकालने के लिए किया जा सकता है। – amstix