public class RetryTemplate extends Object (標準 Javadoc) (英語) implements RetryOperations
再試行可能な操作は、RetryCallback
インターフェースの実装にカプセル化され、提供されている実行メソッドの 1 つを使用して実行されます。
デフォルトでは、Exception
(標準 Javadoc) (英語) または Exception
(標準 Javadoc) (英語) のサブクラスがスローされた場合、操作は再試行されます。この動作は、setRetryPolicy(RetryPolicy)
メソッドを使用して変更できます。
また、デフォルトでは、各操作は最大 3 回再試行され、その間にバックオフはありません。この動作は、setRetryPolicy(RetryPolicy)
および setBackOffPolicy(BackOffPolicy)
プロパティを使用して構成できます。BackOffPolicy
は、各再試行間の一時停止時間を制御します。
このクラスはスレッドセーフであり、操作の実行時や構成の変更時に同時アクセスするのに適しています。そのため、再試行回数や使用される BackOffPolicy
をオンザフライで変更することができ、進行中の再試行可能な操作には影響しません。
修飾子と型 | フィールドと説明 |
---|---|
protected org.apache.commons.logging.Log | logger |
コンストラクターと説明 |
---|
RetryTemplate() |
修飾子と型 | メソッドと説明 |
---|---|
protected boolean | canRetry(RetryPolicy retryPolicy, RetryContext context) 進行中の再試行を続行するかどうかを決定します。 |
protected void | close(RetryPolicy retryPolicy, RetryContext context, RetryState state, boolean succeeded) 必要に応じてキャッシュをクリーンアップし、提供されたコンテキストを閉じます (フラグが処理が成功したことを示している場合)。 |
protected <T,E extends Throwable (標準 Javadoc) (英語) > | doExecute(RetryCallback<T,E> retryCallback, RecoveryCallback<T> recoveryCallback, RetryState state) ポリシーで許可されている場合はコールバックを 1 回実行し、そうでない場合はリカバリコールバックを実行します。 |
<T,E extends Throwable (標準 Javadoc) (英語) > | execute(RetryCallback<T,E> retryCallback) コールバックが成功するか、ポリシーによって停止するように指示されるまで、コールバックの実行を続けます。停止する場合は、コールバックによってスローされた最新の例外が再スローされます。 |
<T,E extends Throwable (標準 Javadoc) (英語) > | execute(RetryCallback<T,E> retryCallback, RecoveryCallback<T> recoveryCallback) コールバックが成功するか、ポリシーによって停止するように指示されるまでコールバックの実行を続けます。停止するように指示された場合は、リカバリコールバックが実行されます。 |
<T,E extends Throwable (標準 Javadoc) (英語) > | execute(RetryCallback<T,E> retryCallback, RecoveryCallback<T> recoveryCallback, RetryState retryState) ポリシーで許可されている場合はコールバックを 1 回実行し、発生した例外を再スローして、クライアントが後で同じタスクを再提示できるようにします。 |
<T,E extends Throwable (標準 Javadoc) (英語) > | execute(RetryCallback<T,E> retryCallback, RetryState retryState) ポリシーで許可されている場合はコールバックを 1 回実行し、発生した例外を再スローして、クライアントが後で同じタスクを再提示できるようにします。 |
protected <T> T | handleRetryExhausted(RecoveryCallback<T> recoveryCallback, RetryContext context, RetryState state) 最後の試行が失敗した後に実行するアクション。 |
protected RetryContext | open(RetryPolicy retryPolicy, RetryState state) 状態が null でない場合は、キャッシュ内の既存の値を確認して RetryPolicy に委譲します。 |
void | registerListener(RetryListener listener) 追加のリスナーを登録します。 |
protected void | registerThrowable(RetryPolicy retryPolicy, RetryState state, RetryContext context, Throwable (標準 Javadoc) (英語) e) |
protected <E extends Throwable (標準 Javadoc) (英語) > | rethrow(RetryContext context, String (標準 Javadoc) (英語) message) |
void | setBackOffPolicy(BackOffPolicy backOffPolicy) BackOffPolicy の Setter。 |
void | setListeners(RetryListener[] listeners) リスナーの皆様へ Setter。 |
void | setRetryContextCache(RetryContextCache retryContextCache) RetryContextCache のパブリック setter。 |
void | setRetryPolicy(RetryPolicy retryPolicy) RetryPolicy の Setter。 |
void | setThrowLastExceptionOnExhausted(boolean throwLastExceptionOnExhausted) |
protected boolean | shouldRethrow(RetryPolicy retryPolicy, RetryContext context, RetryState state) RetryCallback で例外をキャッチした後の動作を決定するサブクラスの拡張ポイント。 |
clone (標準 Javadoc) (英語) , equals (標準 Javadoc) (英語) , finalize (標準 Javadoc) (英語) , getClass (標準 Javadoc) (英語) , hashCode (標準 Javadoc) (英語) , notify (標準 Javadoc) (英語) , notifyAll (標準 Javadoc) (英語) , toString (標準 Javadoc) (英語) , wait (標準 Javadoc) (英語) , wait (標準 Javadoc) (英語) , wait (標準 Javadoc) (英語)
public void setThrowLastExceptionOnExhausted(boolean throwLastExceptionOnExhausted)
throwLastExceptionOnExhausted
- throwLastExceptionOnExhausted を設定する public void setRetryContextCache(RetryContextCache retryContextCache)
RetryContextCache
のパブリック setter。retryContextCache
- 設定する RetryContextCache
public void setListeners(RetryListener[] listeners)
listeners
- RetryListener
sRetryListener
public void registerListener(RetryListener listener)
listener
- RetryListener
setListeners(RetryListener[])
public void setBackOffPolicy(BackOffPolicy backOffPolicy)
BackOffPolicy
の Setter。backOffPolicy
- BackOffPolicy
public void setRetryPolicy(RetryPolicy retryPolicy)
RetryPolicy
の Setter。retryPolicy
- RetryPolicy
public final <T,E extends Throwable (標準 Javadoc) (英語) > T execute(RetryCallback<T,E> retryCallback) throws E extends Throwable (標準 Javadoc) (英語)
RetryOperations
の execute
T
- 戻り値 E
- スローする例外 retryCallback
- RetryCallback
RetryCallback
によって返される値。TerminatedRetryException
- 再試行がリスナーによって手動で終了された場合。E
- 再試行が失敗したときに RetryCallback
によって発生した Exception
(標準 Javadoc) (英語) 。E extends Throwable (標準 Javadoc) (英語)
RetryOperations.execute(RetryCallback)
public final <T,E extends Throwable (標準 Javadoc) (英語) > T execute(RetryCallback<T,E> retryCallback, RecoveryCallback<T> recoveryCallback) throws E extends Throwable (標準 Javadoc) (英語)
RetryOperations
の execute
T
- 返す型 E
- 例外の種類 retryCallback
- RetryCallback
recoveryCallback
- RecoveryCallback
RetryCallback
によって返される値、それ以外の場合に RecoveryCallback
によって返される値。TerminatedRetryException
- 再試行がリスナーによって手動で終了された場合。E
- 発生した Exception
(標準 Javadoc) (英語) E extends Throwable (標準 Javadoc) (英語)
RetryOperations.execute(RetryCallback, RecoveryCallback)
public final <T,E extends Throwable (標準 Javadoc) (英語) > T execute(RetryCallback<T,E> retryCallback, RetryState retryState) throws E extends Throwable (標準 Javadoc) (英語) , ExhaustedRetryException
RetryOperations
の execute
T
- 戻り値の型 E
- 返される例外の型 retryCallback
- RetryCallback
retryState
- RetryState
RetryCallback
によって返される値、それ以外の場合に RecoveryCallback
によって返される値。ExhaustedRetryException
- 再試行回数が上限に達した場合。E
- RecoveryCallback
によって発生した Exception
(標準 Javadoc) (英語) 。E extends Throwable (標準 Javadoc) (英語)
RetryOperations.execute(RetryCallback, RetryState)
public final <T,E extends Throwable (標準 Javadoc) (英語) > T execute(RetryCallback<T,E> retryCallback, RecoveryCallback<T> recoveryCallback, RetryState retryState) throws E extends Throwable (標準 Javadoc) (英語) , ExhaustedRetryException
RetryOperations
の execute
T
- 戻り値の型 E
- 例外型 retryCallback
- RetryCallback
recoveryCallback
- RecoveryCallback
retryState
- RetryState
RetryCallback
によって返される値、それ以外の場合に RecoveryCallback
によって返される値。E
- 再試行が失敗したときに RecoveryCallback
によって発生した Exception
(標準 Javadoc) (英語) 。E extends Throwable (標準 Javadoc) (英語)
ExhaustedRetryException
RetryOperations.execute(RetryCallback, RetryState)
protected <T,E extends Throwable (標準 Javadoc) (英語) > T doExecute(RetryCallback<T,E> retryCallback, RecoveryCallback<T> recoveryCallback, RetryState state) throws E extends Throwable (標準 Javadoc) (英語) , ExhaustedRetryException
T
- 戻り値の型 E
- スローする例外の種類 recoveryCallback
- RecoveryCallback
retryCallback
- RetryCallback
state
- RetryState
ExhaustedRetryException
- 再試行回数が上限に達した場合。E
- 再試行操作が失敗した場合の例外 E extends Throwable (標準 Javadoc) (英語)
RetryOperations.execute(RetryCallback, RecoveryCallback, RetryState)
protected boolean canRetry(RetryPolicy retryPolicy, RetryContext context)
RetryCallback
が実行される前に、バックオフとオープンインターセプターの後に呼び出されます。retryPolicy
- 適用するポリシー context
- 現在の再試行コンテキスト protected void close(RetryPolicy retryPolicy, RetryContext context, RetryState state, boolean succeeded)
retryPolicy
- RetryPolicy
context
- RetryContext
state
- RetryState
succeeded
- クローズが成功したかどうか protected void registerThrowable(RetryPolicy retryPolicy, RetryState state, RetryContext context, Throwable (標準 Javadoc) (英語) e)
protected RetryContext open(RetryPolicy retryPolicy, RetryState state)
RetryPolicy
に委譲します。state
- RetryState
retryPolicy
- コンテキスト作成を委譲する RetryPolicy
protected <T> T handleRetryExhausted(RecoveryCallback<T> recoveryCallback, RetryContext context, RetryState state) throws Throwable (標準 Javadoc) (英語)
T
- 分類する型 recoveryCallback
- 回復のためのコールバック (null である可能性があります)context
- 現在の再試行コンテキスト state
- RetryState
Exception (標準 Javadoc) (英語)
- コールバックがコールバックを実行し、コールバックが存在せず状態が null の場合は、コンテキストからの最後の例外 ExhaustedRetryException
- 状態が null でなく、回復コールバックがない場合 Throwable (標準 Javadoc) (英語)
protected <E extends Throwable (標準 Javadoc) (英語) > void rethrow(RetryContext context, String (標準 Javadoc) (英語) message) throws E extends Throwable (標準 Javadoc) (英語)
E extends Throwable (標準 Javadoc) (英語)
protected boolean shouldRethrow(RetryPolicy retryPolicy, RetryContext context, RetryState state)
RetryCallback
で例外をキャッチした後の動作を決定するサブクラスの拡張ポイント。通常のステートレス動作では再スローは行われませんが、状態がある場合は再スローされます。retryPolicy
- 再試行ポリシー context
- 現在のコンテキスト state
- 現在の retryStateCopyright © 2018 SpringSource (英語) . All rights reserved.