アクターが失敗したときにもう一度何かを試すのが良い方法ですが、再試行の間隔が広がっていますか?俳優が15秒後、30秒後、そして1分間に限られた回数だけ再試行したいとしましょう。実際の作業を行い、俳優の方法が存在する場合、我々は現在 再試行の数が含まれ、オプションの RetryInfo
のパラメータを持っていAkka:遅延間隔が長くなると失敗すると再試行をスケジュールする方法はありますか?
- :ここ
は、私が作ってみたものです失敗した場合に
- で、俳優は他の俳優が
Resume
を返すnew OneForOneStrategy(-1, Duration.Inf()
を使用して、労働者の俳優を監督のRuntimeException - を投げ、その後、それ自体が
retryCount + 1
で新しいScheduleRetryMessage
を送信しますその指令として。俳優は何の状態を持っていないので、Resume
はScheduleRetryMessage
を受けて - OKでなければなりません
retryCount < MAX_RETRIES
場合、俳優がされます:所望の遅延他- 後
RetryMessage
を送信スケジュールするアッカのスケジューラを使用します。最終的にはあきらめて、
エラー報告のために別のアクターにメッセージを送信し、これは良い解決策であるか、より良い方法はありますか?
面白いアイデア、私はそれを試してみましょう。ありがとう! –