Closed2
リトライパターン
再試行パターン
本文中に記載されているように、再試行する場合には大きく3つの戦略がある。
以下、MS docより適宜抜粋させてもらいました(感謝)
- キャンセルする
障害が一時的でないか、操作を繰り返しても成功する可能性が低い場合、アプリケーションは、操作をキャンセルして例外を報告する必要があります。
- (すぐに)再試行する: 障害やエラーがまれなケースの場合に有効。
報告された特定の障害が異常であるか、めったに発生しないものである場合は、ネットワーク パケットが転送中に破損しているといった普通でない状況が原因である可能性があります。 この場合、アプリケーションは、失敗した要求をすぐに再試行できます。これは、同じ障害が繰り返される可能性は低く、要求はおそらく成功するためです。
- 時間をおいて再試行する
障害の原因が、一般的な接続エラーまたはビジー エラーのいずれかである場合、ネットワークまたはサービスは、接続の問題が修正されるか作業のバックログがクリアされるための時間を必要とします。 アプリケーションは、要求を再試行する前に、適切な時間、待機する必要があります。
再試行ストラテジー
以下の5つのパターンについて整理されている。
- Retry
- Retry after a delay
- Sliding Retry
- Retry With Jitter
- Cancel
マイクロサービスにおけるリトライパターン
このスクラップは2021/09/23にクローズされました