अभिनेता को विफलता पर फिर से प्रयास करने का एक अच्छा तरीका क्या है, लेकिन रीट्रीज़ के बीच बढ़ते समय अंतराल के साथ? मान लें कि मैं चाहता हूं कि अभिनेता 15 सेकंड के बाद फिर से कोशिश करें, फिर 30 सेकंड, फिर सीमित मिनट के लिए हर मिनट।अक्का: बढ़ती देरी अंतराल के साथ विफलता पर रीट्रीज़ कैसे निर्धारित करें?
यहाँ मैं क्या लेकर आए हैं:
- अभिनेता की विधि करता है कि वास्तविक काम एक वैकल्पिक
RetryInfo
पैरामीटर है कि, वर्तमान है, पुन: प्रयास करें हम वर्तमान में कर रहे हैं की संख्या में शामिल है - विफलता पर में, अभिनेता ही
retryCount + 1
के साथ एक नयाScheduleRetryMessage
भेज देंगे, तो एक RuntimeException फेंक - एक और अभिनेता कार्यकर्ता अभिनेता का पर्यवेक्षण,
Resume
लौटनेnew OneForOneStrategy(-1, Duration.Inf()
का उपयोग कर इसके निर्देश के रूप में। अभिनेता कोई राज्य नहीं है, इसलिएResume
, अभिनेता जाएगा- अगर
retryCount < MAX_RETRIES
ScheduleRetryMessage
प्राप्त करने पर ठीक - होना चाहिए: वांछित देरी
- किसी और के बाद एक
RetryMessage
भेजने का समय निर्धारित करने अक्का की अनुसूचक का उपयोग करें: अंत में छोड़ देना, रिपोर्टिंग
- अगर
त्रुटि के लिए एक और अभिनेता को कोई संदेश भेजने यह एक अच्छा समाधान है या एक बेहतर तरीका है?
दिलचस्प विचार, मैं कोशिश करूँगा। धन्यवाद! –