クラス ExponentialRandomBackOffPolicy

java.lang.ObjectSE
org.springframework.retry.backoff.ExponentialBackOffPolicy
org.springframework.retry.backoff.ExponentialRandomBackOffPolicy
実装されたすべてのインターフェース:
BackOffPolicySleepingBackOffPolicy<ExponentialBackOffPolicy>

public class ExponentialRandomBackOffPolicy extends ExponentialBackOffPolicy
単純な決定論的指数から得られる間隔のランダムな倍数を選択する ExponentialBackOffPolicy の実装。ランダムな倍数は、1 と決定論的乗数の間で均一に分散されます (したがって、実際の間隔は、決定論的なケースでは次の間隔と次の 1 つ前の間隔の間のどこかになります)。これは、ジッターと呼ばれることがよくあります。これは、少なくとも、テストで多くの再試行が必要になることで過度の競合が発生するテストシナリオでは役立つことがわかっています。テストでは、通常、スレッドが同時に開始されるため、次の間隔に一緒に踏み込みます。この BackOffPolicy を使用すると、そのシナリオを回避できます。例: initialInterval = 50 乗数 = 2.0 maxInterval = 3000 numRetries = 5 ExponentialBackOffPolicy の結果: [50, 100, 200, 400, 800] ExponentialRandomBackOffPolicy の結果は [76, 151, 304, 580, 901] または [53, 190, 267, 451, 815] になる場合があります ([50-100、100-200, 200-400, 400-800、800-1600] の範囲内のランダム分布値)
作成者:
Jon Travis, Dave Syer, Chase Diem