クラス RequestHandlerRetryAdvice

実装済みのインターフェース一覧:
Advice, Interceptor, MethodInterceptor, Aware, BeanFactoryAware, BeanNameAware, InitializingBean, ApplicationContextAware, ComponentSourceAware, ExpressionCapable, NamedComponent

public class RequestHandlerRetryAdvice extends AbstractRequestHandlerAdvice
ターゲットの MessageHandler 実行を再試行するための AbstractRequestHandlerAdvice 実装。

デフォルトでは、このアドバイスは、間に遅延なしで 3 回の試行 (および初期実行) を実行します。

setStateKeyFunction(Function) が指定されている場合、再試行ロジックはステートフルアルゴリズムに変換されます。この場合、例外が再試行可能な場合、指定された再試行状態キーによって BackOffExecution がキャッシュされます。その後、この例外は呼び出し元にスローされ、たとえばトランザクションのロールバックやメッセージブローカーへのメッセージの再キューイングなどのために使用されます。次に同じキーを持つメッセージが再び到着(再配信)されると、キャッシュされた BackOffExecution が復元され、RetryPolicy に基づいて対象サービスが直ちに再呼び出されます。

setNewMessagePredicate(Predicate) が true を返す場合、このメッセージの状態がすでにキャッシュされている場合でも、新しいステートフル再試行サイクルが開始されます。

導入:
2.2
作成者:
Gary Russell, Artem Bilan
  • コンストラクターの詳細

    • RequestHandlerRetryAdvice

      public RequestHandlerRetryAdvice()
  • 方法の詳細

    • setRetryPolicy

      public void setRetryPolicy(RetryPolicy retryPolicy)
      使用する RetryPolicy を設定します。デフォルトでは、遅延なしで 3 回試行されます。setBackOff(BackOff) とは排他的です。
      パラメーター:
      retryPolicy - ポリシー。
    • setBackOff

      public void setBackOff(BackOff backOff)
      内部 RetryPolicy で使用する BackOff を設定します。残りのオプションはデフォルトです。setRetryPolicy(RetryPolicy) とは排他的です。
      パラメーター:
      backOff - バックオフ。
      導入:
      7.0.1
    • setRetryListener

      public void setRetryListener(RetryListener retryListener)
      再試行サイクルのフェーズを追跡するには、RetryListener を設定します。
      パラメーター:
      retryListener - 使用するリスナー。
    • setRecoveryCallback

      public void setRecoveryCallback(RecoveryCallback<ObjectSE> recoveryCallback)
      RetryException を処理するために RecoveryCallback を設定します。
      パラメーター:
      recoveryCallback - 使用するコールバック。
    • setStateKeyFunction

      public void setStateKeyFunction(FunctionSE<Message<?>, ObjectSE> stateKeyFunction)
      リクエストメッセージに対するステートフルな再試行実行キーを決定するために、FunctionSE を設定します。指定しない場合、再試行動作はステートレスになります。
      パラメーター:
      stateKeyFunction - リクエストメッセージに対してステートフル再試行実行キーを決定する機能。
    • setStateCacheSize

      public void setStateCacheSize(int stateCacheSize)
      ステートフル再試行状態キャッシュのサイズ。デフォルトは 100 です。このオプションは、setStateKeyFunction(Function) が指定されている場合にのみ使用されます。
      パラメーター:
      stateCacheSize - キャッシュのサイズ。
    • setNewMessagePredicate

      public void setNewMessagePredicate(PredicateSE<Message<?>> newMessagePredicate)
      このリクエストメッセージに対して新たなステートフルリトライ状態を開始するかどうかを決定するために、PredicateSE を設定します。デフォルトでは false が設定され、既存のステートフルリトライ状態はリフレッシュされません。このオプションは setStateKeyFunction(Function) が指定されている場合にのみ使用されます。
      パラメーター:
      newMessagePredicate - 使用する述語。
    • doInvoke

      protected @Nullable ObjectSE doInvoke(AbstractRequestHandlerAdvice.ExecutionCallback callback, ObjectSE target, Message<?> message)
      クラスからコピーされた説明: AbstractRequestHandlerAdvice
      サブクラスは、このメソッドを実装して、MessageHandler に動作を適用します。

      callback.execute() はハンドラーメソッドを呼び出し、その結果、null を返します。

      次で指定:
      クラス AbstractRequestHandlerAdvicedoInvoke 
      パラメーター:
      callback - サブクラスは、このインターフェースで execute() メソッドを呼び出して、ハンドラーメソッドを呼び出します。
      target - ターゲットハンドラー。
      message - ハンドラーに送信されるメッセージ。
      戻り値:
      MessageHandler を呼び出した後の結果。