クラス BackOffPolicyBuilder

java.lang.ObjectSE
org.springframework.retry.backoff.BackOffPolicyBuilder

public class BackOffPolicyBuilder extends ObjectSE
指定された属性に基づいて BackOffPolicy を作成するための Fluent API。遅延値はミリ秒単位で表されます。指定された値が 1 未満の場合、結果のポリシーはそれを 1 に設定します。デフォルトのポリシーは、遅延が 1000 ミリ秒の FixedBackOffPolicy です。

例:


 // Default FixedBackOffPolicy with 1000ms delay
 BackOffPolicyBuilder
                .newDefaultPolicy();

 // FixedBackOffPolicy
 BackOffPolicyBuilder
                .newBuilder()
                .delay(2000)
                .build();

 // UniformRandomBackOffPolicy
 BackOffPolicyBuilder
                .newBuilder()
                .delay(500)
                .maxDelay(1000)
                .build();

 // ExponentialBackOffPolicy
 BackOffPolicyBuilder
                .newBuilder()
                .delay(1000)
                .maxDelay(5000)
                .multiplier(2)
                .build();

 // ExponentialRandomBackOffPolicy with provided Sleeper
 BackOffPolicyBuilder
                .newBuilder()
                .delay(3000)
                .maxDelay(5000)
                .multiplier(1.5)
                .random(true)
                .sleeper(mySleeper)
                .build();
 

スレッドセーフではありません。ビルドは単一のスレッドで実行する必要があります。ただし、結果として得られる BackOffPolicy はスレッドセーフであることが期待され、中程度の負荷の同時アクセス用に設計されています。

導入:
1.3.3
作成者:
Tomaz Fernandes, Aftab Shaikh
  • 方法の詳細

    • newBuilder

      public static BackOffPolicyBuilder newBuilder()
      新しい BackOffPolicyBuilder インスタンスを作成します。
      戻り値:
      ビルダーインスタンス
    • newDefaultPolicy

      public static BackOffPolicy newDefaultPolicy()
      1000 ミリ秒の遅延で新しい FixedBackOffPolicy インスタンスを作成します。
      戻り値:
      バックオフポリシーインスタンス
    • delay

      public BackOffPolicyBuilder delay(long delay)
      標準的なバックオフ期間。指数の場合は初期値として使用され、均一の場合は最小値として使用されます。
      パラメーター:
      delay - 初期または標準のバックオフ期間(ミリ秒単位)
      戻り値:
      this
    • maxDelay

      public BackOffPolicyBuilder maxDelay(long maxDelay)
      再試行間の最大待機時間(ミリ秒単位)。delay(long) より小さい場合は、結果のポリシーに応じてデフォルト値が適用されます。
      パラメーター:
      maxDelay - 再試行間の最大待機時間(ミリ秒)
      戻り値:
      this
    • multiplier

      public BackOffPolicyBuilder multiplier(double multiplier)
      正の場合、バックオフの次の遅延を生成するための乗数として使用されます。
      パラメーター:
      multiplier - 次のバックオフ遅延を計算するために使用する乗数
      戻り値:
      this
    • random

      public BackOffPolicyBuilder random(boolean random)
      指数関数の場合 (multiplier > 0)、これを true に設定するとバックオフ遅延がランダム化され、最大遅延が前の遅延の乗数倍になり、2 つの値の間で分布が均一になります。
      パラメーター:
      random - ランダム化を通知するフラグが必要です
      戻り値:
      this
    • sleeper

      public BackOffPolicyBuilder sleeper(Sleeper sleeper)
      バックオフに使用する Sleeper インスタンス。ポリシーのデフォルトは ThreadWaitSleeper です。
      パラメーター:
      sleeper - Sleeper インスタンス
      戻り値:
      this
    • delaySupplier

      public BackOffPolicyBuilder delaySupplier(SupplierSE<LongSE> delaySupplier)
      遅延のサプライヤーを設定します。
      パラメーター:
      delaySupplier - サプライヤー。
      戻り値:
      this
      導入:
      2.0
    • maxDelaySupplier

      public BackOffPolicyBuilder maxDelaySupplier(SupplierSE<LongSE> maxDelaySupplier)
      最大遅延のサプライヤーを設定します。
      パラメーター:
      maxDelaySupplier - サプライヤー。
      戻り値:
      this
      導入:
      2.0
    • multiplierSupplier

      public BackOffPolicyBuilder multiplierSupplier(SupplierSE<DoubleSE> multiplierSupplier)
      乗数のサプライヤーを設定します。
      パラメーター:
      multiplierSupplier - サプライヤー。
      戻り値:
      this
      導入:
      2.0
    • randomSupplier

      public BackOffPolicyBuilder randomSupplier(SupplierSE<BooleanSE> randomSupplier)
      ランダムにサプライヤーを設定します。
      パラメーター:
      randomSupplier - サプライヤー。
      戻り値:
      this
      導入:
      2.0
    • build

      public BackOffPolicy build()
      指定されたパラメーターを使用して BackOffPolicy を構築します。
      戻り値:
      BackOffPolicy インスタンス