में असफल संदेशों का पुनः प्रयास/पुन: चलाएं मैं अपने वर्तमान .NET प्रोजेक्ट में AKKA.NET का उपयोग कर रहा हूं।AKKA
मेरा प्रश्न यह है: जावा या .NET के लिए नवीनतम AKKA पुस्तकालयों का उपयोग करके एकेके-डेवलपर्स को रीप्ले-संदेश-ऑन-विफलता पैटर्न को कैसे कार्यान्वित किया जाता है?
यहां कुछ और विवरण दिए गए हैं।
मैं यह सुनिश्चित करना चाहता हूं कि एक असफल संदेश (यानी एक अभिनेता द्वारा प्राप्त अपवाद के लिए प्राप्त संदेश) प्रत्येक के बीच एक समय अंतराल के साथ कई बार फिर से चलाया/पुनः प्रयास किया जाता है। आम तौर पर असफल संदेश से अभिनेता को फिर से शुरू किया जाता है।
मैं इस तरह अपने ही छोटे सहायक विधि इसे हल करने में लिखा है:
public void WithRetries(int noSeconds, IUntypedActorContext context, IActorRef receiver, IActorRef sender, Object message, Action action)
{
try
{
action();
}
catch (Exception e)
{
context.System.Scheduler.ScheduleTellOnce(new TimeSpan(0, 0, noSeconds), receiver, message, sender);
throw;
}
}
}
अब मेरी अभिनेताओं आम तौर पर इस तरह दिखेगा:
Receive<SomeMessage>(msg =>
{
ActorHelper.Instance.WithRetries(-1, Context, Self, Sender, msg,() => {
...here comes the actual message processing
});
});
मैं ऊपर समाधान चाहते क्योंकि यह सरल है। हालांकि, मुझे यह पसंद नहीं है कि यह मेरे कोड में संकेत की एक और परत जोड़ता है, और अगर मैं कई जगहों पर इस सहायक विधि का उपयोग करता हूं तो कोड थोड़ा और गन्दा हो जाता है। इसके अलावा इसमें कुछ सीमाएं हैं। सबसे पहले, पुनः प्रयासों की संख्या सहायक विधि द्वारा शासित नहीं होती है। यह पर्यवेक्षक की पर्यवेक्षण रणनीति द्वारा शासित है, जो मुझे विश्वास है कि गन्दा है। इसके अलावा, समय अंतराल तय किया गया है, जबकि मैं कुछ मामलों में एक समय अंतराल की तरह होगा जो प्रत्येक पुनः प्रयास के लिए बढ़ता है।
मैं कुछ ऐसा पसंद करूंगा जिसे HOCON का उपयोग करके कॉन्फ़िगर किया जा सके। या कुछ ऐसा जो क्रॉस-चिंता के रूप में लागू किया जा सकता है।
मैं स्कैला के लिए AKKA, जावा के लिए AKKA और AKKA.NET के लिए विभिन्न सुझाव देख सकता हूं। मैंने राउटर के साथ उदाहरण देखा है, सर्किट ब्रेकर के साथ उदाहरण (उदा। http://getakka.net/docs/CircuitBreaker#examples) और बहुत आगे। मैंने उपरोक्त के समान विचार का उपयोग करके कुछ उदाहरण भी देखे हैं। लेकिन मुझे एहसास है कि यह भी आसान होना चाहिए। शायद इसमें AKKA दृढ़ता और घटनाओं का कुछ उपयोग शामिल है।
तो मेरा प्रश्न दोहराने के लिए: जावा या .NET के लिए नवीनतम AKKA पुस्तकालयों का उपयोग करके एकेके-डेवलपर्स को रीप्ले-संदेश-ऑन-विफलता पैटर्न को कैसे कार्यान्वित किया जाता है?
यह कैसे करें अक्का के साथ जावा में असफल संदेश के मामले में पुनः प्रयास/पुनः चलाएं। अगर कोई जानता है तो कृपया मदद करें। –