クラス RequestHandlerRetryAdvice
java.lang.ObjectSE
org.springframework.integration.context.IntegrationObjectSupport
org.springframework.integration.handler.advice.AbstractRequestHandlerAdvice
org.springframework.integration.handler.advice.RequestHandlerRetryAdvice
- 実装済みのインターフェース一覧:
Advice, Interceptor, MethodInterceptor, Aware, BeanFactoryAware, BeanNameAware, InitializingBean, ApplicationContextAware, ComponentSourceAware, ExpressionCapable, NamedComponent
ターゲットの
MessageHandler 実行を再試行するための AbstractRequestHandlerAdvice 実装。デフォルトでは、このアドバイスは、間に遅延なしで 3 回の試行 (および初期実行) を実行します。
setStateKeyFunction(Function) が指定されている場合、再試行ロジックはステートフルアルゴリズムに変換されます。この場合、例外が再試行可能な場合、指定された再試行状態キーによって BackOffExecution がキャッシュされます。その後、この例外は呼び出し元にスローされ、たとえばトランザクションのロールバックやメッセージブローカーへのメッセージの再キューイングなどのために使用されます。次に同じキーを持つメッセージが再び到着(再配信)されると、キャッシュされた BackOffExecution が復元され、RetryPolicy に基づいて対象サービスが直ちに再呼び出されます。
setNewMessagePredicate(Predicate) が true を返す場合、このメッセージの状態がすでにキャッシュされている場合でも、新しいステートフル再試行サイクルが開始されます。
- 導入:
- 2.2
- 作成者:
- Gary Russell, Artem Bilan
ネストされたクラスの概要
クラス AbstractRequestHandlerAdvice から継承されたネストクラス / インターフェース
AbstractRequestHandlerAdvice.ExecutionCallback, AbstractRequestHandlerAdvice.ThrowableHolderExceptionフィールド概要
クラス IntegrationObjectSupport から継承されたフィールド
EXPRESSION_PARSER, loggerコンストラクター概要
コンストラクター方法の概要
修飾子と型メソッド説明protected @Nullable ObjectSEdoInvoke(AbstractRequestHandlerAdvice.ExecutionCallback callback, ObjectSE target, Message<?> message) サブクラスは、このメソッドを実装して、MessageHandlerに動作を適用します。voidsetBackOff(BackOff backOff) 残りのオプションをデフォルトとして、内部RetryPolicyで使用するBackOffを設定します。voidsetNewMessagePredicate(PredicateSE<Message<?>> newMessagePredicate) このリクエストメッセージに対して新しいステートフル再試行状態を開始する必要があるかどうかを決定するために、PredicateSE を設定します。voidsetRecoveryCallback(RecoveryCallback<ObjectSE> recoveryCallback) RetryExceptionを処理するためにRecoveryCallbackを設定します。voidsetRetryListener(RetryListener retryListener) 再試行サイクルのフェーズを追跡するには、RetryListenerを設定します。voidsetRetryPolicy(RetryPolicy retryPolicy) 使用するRetryPolicyを設定します。voidsetStateCacheSize(int stateCacheSize) ステートフル再試行状態キャッシュのサイズ。voidsetStateKeyFunction(FunctionSE<Message<?>, ObjectSE> stateKeyFunction) リクエストメッセージに対するステートフル再試行実行キーを決定するためにFunctionSE を設定します。クラス AbstractRequestHandlerAdvice から継承されたメソッド
getComponentType, invoke, unwrapExceptionIfNecessary, unwrapThrowableIfNecessaryクラス IntegrationObjectSupport から継承されたメソッド
afterPropertiesSet, extractTypeIfPossible, generateId, getApplicationContext, getApplicationContextId, getBeanDescription, getBeanFactory, getBeanName, getChannelResolver, getComponentDescription, getComponentName, getComponentSource, getConversionService, getExpression, getIntegrationProperties, getMessageBuilderFactory, getTaskScheduler, isInitialized, onInit, setApplicationContext, setBeanFactory, setBeanName, setChannelResolver, setComponentDescription, setComponentName, setComponentSource, setConversionService, setMessageBuilderFactory, setPrimaryExpression, setTaskScheduler, toString
コンストラクターの詳細
RequestHandlerRetryAdvice
public RequestHandlerRetryAdvice()
方法の詳細
setRetryPolicy
使用するRetryPolicyを設定します。デフォルトでは、遅延なしで 3 回試行されます。setBackOff(BackOff)とは排他的です。- パラメーター:
retryPolicy- ポリシー。
setBackOff
- パラメーター:
backOff- バックオフ。- 導入:
- 7.0.1
setRetryListener
再試行サイクルのフェーズを追跡するには、RetryListenerを設定します。- パラメーター:
retryListener- 使用するリスナー。
setRecoveryCallback
RetryExceptionを処理するためにRecoveryCallbackを設定します。- パラメーター:
recoveryCallback- 使用するコールバック。
setStateKeyFunction
リクエストメッセージに対するステートフルな再試行実行キーを決定するために、FunctionSE を設定します。指定しない場合、再試行動作はステートレスになります。- パラメーター:
stateKeyFunction- リクエストメッセージに対してステートフル再試行実行キーを決定する機能。
setStateCacheSize
public void setStateCacheSize(int stateCacheSize) ステートフル再試行状態キャッシュのサイズ。デフォルトは 100 です。このオプションは、setStateKeyFunction(Function)が指定されている場合にのみ使用されます。- パラメーター:
stateCacheSize- キャッシュのサイズ。
setNewMessagePredicate
このリクエストメッセージに対して新たなステートフルリトライ状態を開始するかどうかを決定するために、PredicateSE を設定します。デフォルトではfalseが設定され、既存のステートフルリトライ状態はリフレッシュされません。このオプションはsetStateKeyFunction(Function)が指定されている場合にのみ使用されます。- パラメーター:
newMessagePredicate- 使用する述語。
doInvoke
protected @Nullable ObjectSE doInvoke(AbstractRequestHandlerAdvice.ExecutionCallback callback, ObjectSE target, Message<?> message) クラスからコピーされた説明:AbstractRequestHandlerAdviceサブクラスは、このメソッドを実装して、MessageHandlerに動作を適用します。callback.execute() はハンドラーメソッドを呼び出し、その結果、null を返します。
- 次で指定:
- クラス
AbstractRequestHandlerAdviceのdoInvoke - パラメーター:
callback- サブクラスは、このインターフェースで execute() メソッドを呼び出して、ハンドラーメソッドを呼び出します。target- ターゲットハンドラー。message- ハンドラーに送信されるメッセージ。- 戻り値:
MessageHandlerを呼び出した後の結果。