アノテーションインターフェース CircuitBreaker
@TargetSE({METHODSE,TYPESE})
@RetentionSE(RUNTIMESE)
@DocumentedSE
@Retryable(stateful=true)
public @interface CircuitBreaker
再試行可能なメソッド呼び出しのアノテーション。
- 導入:
- 1.2
- 作成者:
- Dave Syer, Artem Bilan, Gary Russell
オプション要素の概要
オプション要素修飾子と型オプションの要素説明SimpleRetryPolicy.canRetry()が true を返した後に評価される式を指定します。条件付きで再試行を抑制するために使用できます。ClassSE<? extends ThrowableSE>[]使用すべきではありません。ClassSE<? extends ThrowableSE>[]使用すべきではありません。retryFor()を推奨。レポートと状態管理のための回路の一意のラベル。intClassSE<? extends ThrowableSE>[]再試行できない例外型。ClassSE<? extends ThrowableSE>[]回復できない例外型。これらの例外は、回復機能を呼び出さずに呼び出し元にスローされます (noRetryFor()の場合も直ちにスローされます)。longこのタイムアウト内にmaxAttempts()障害が発生すると、回路が自動的に開かれ、下流コンポーネントへのアクセスが防止されます。このタイムアウト内にmaxAttempts()障害が発生すると、回路が自動的に開かれ、下流コンポーネントへのアクセスが防止されます。回復に使用するこのクラスのメソッドの名前。long回線がこのタイムアウトよりも長く開いている場合、次の呼び出しで回線がリセットされ、下流のコンポーネントに再度応答する機会が与えられます。回線がこのタイムアウトよりも長く開いている場合、次の呼び出しで回線がリセットされ、下流のコンポーネントに再度応答する機会が与えられます。ClassSE<? extends ThrowableSE>[]再試行可能な例外型。boolean再試行が失敗したときに最後の例外をExhaustedRetryExceptionにラップしないようにするには、trueに設定します。ClassSE<? extends ThrowableSE>[]使用すべきではありません。retryFor()を推奨
要素の詳細
value
使用すべきではありません。retryFor()を推奨再試行可能な例外型。デフォルトは空です (excludes も空の場合は、すべての例外が再試行されます)。- 戻り値:
- 再試行する例外の種類
- デフォルト:
- {}
include
使用すべきではありません。retryFor()を推奨。再試行可能な例外型。デフォルトは空です (excludes も空の場合は、すべての例外が再試行されます)。- 戻り値:
- 再試行する例外の種類
- デフォルト:
- {}
retryFor
再試行可能な例外型。デフォルトは空です (noRetryFor も空の場合、すべての例外が再試行されます)。- 戻り値:
- 再試行する例外の種類
- 導入:
- 2.0
- デフォルト:
- {}
exclude
使用すべきではありません。noRetryFor()を推奨。再試行できない例外型。デフォルトは空です(includes も空の場合はすべての例外が再試行されます)。includes が空で excludes が空でない場合は、除外されていないすべての例外が再試行されます。- 戻り値:
- 再試行しない例外型
- デフォルト:
- {}
noRetryFor
再試行できない例外型。デフォルトは空です(retryFor も空の場合、すべての例外が再試行されます)。retryFor が空で excludes が空でない場合、他のすべての例外が再試行されます。- 戻り値:
- 再試行しない例外型
- 導入:
- 2.0
- デフォルト:
- {}
notRecoverable
回復できない例外型。これらの例外は、回復機能を呼び出さずに呼び出し元にスローされます (noRetryFor()の場合も直ちにスローされます)。デフォルトは空です。- 戻り値:
- 再試行しない例外型
- 導入:
- 2.0
- デフォルト:
- {}
maxAttempts
- 戻り値:
- 最大試行回数(最初の失敗を含む)、デフォルトは 3
- デフォルト:
- 3
maxAttemptsExpression
- 戻り値:
- 最大試行回数(最初の失敗を含む)まで評価された式。デフォルトは 3 です。
maxAttempts()をオーバーライドします。初期化中に 1 回だけ評価する場合は#{...}を使用し、実行時の評価では区切り文字を省略します。 - 導入:
- 1.2.3
- デフォルト:
- ""
label
レポートと状態管理のための回路の一意のラベル。デフォルトでは、アノテーションが宣言されているメソッドシグネチャーになります。- 戻り値:
- 回路のラベル
- デフォルト:
- ""
resetTimeout
long resetTimeout回線がこのタイムアウトよりも長く開いている場合、次の呼び出しで回線がリセットされ、下流のコンポーネントに再度応答する機会が与えられます。- 戻り値:
- オープン回路がリセットされるまでのタイムアウト(ミリ秒単位)。デフォルトは 20000 です
- デフォルト:
- 20000L
resetTimeoutExpression
StringSE resetTimeoutExpression回線がこのタイムアウトよりも長く開いている場合、次の呼び出しでリセットされ、下流のコンポーネントに再度応答する機会が与えられます。resetTimeout()をオーバーライドします。初期化中の 1 回限りの評価には#{...}を使用し、実行時の評価では区切り文字を省略します。- 戻り値:
- オープン回路がリセットされる前のタイムアウト(ミリ秒単位)。デフォルトはありません。
- 導入:
- 1.2.3
- デフォルト:
- ""
openTimeout
long openTimeoutこのタイムアウト内にmaxAttempts()障害が発生すると、回路が自動的に開かれ、下流コンポーネントへのアクセスが防止されます。- 戻り値:
- 閉回路が開かれるまでのタイムアウト(ミリ秒単位)。デフォルトは 5000 です。
- デフォルト:
- 5000L
openTimeoutExpression
StringSE openTimeoutExpressionこのタイムアウト内にmaxAttempts()障害に達すると、回路が自動的に開かれ、下流コンポーネントへのアクセスが防止されます。openTimeout()をオーバーライドします。初期化中の 1 回限りの評価には#{...}を使用し、実行時の評価では区切り文字を省略します。- 戻り値:
- 閉じた回路が開かれるまでのタイムアウト(ミリ秒単位)。デフォルトはありません。
- 導入:
- 1.2.3
- デフォルト:
- ""
exceptionExpression
SimpleRetryPolicy.canRetry()が true を返した後に評価される式を指定します。条件付きで再試行を抑制するために使用できます。例外がスローされた後にのみ呼び出されます。評価のルートオブジェクトは最後のThrowableです。コンテキスト内の他の Bean を参照できます。例:
および"message.contains('you can retry this')"."@someBean.shouldRetry(#root)".- 戻り値:
- 表現。
- 導入:
- 1.2.3
- デフォルト:
- ""
throwLastExceptionOnExhausted
boolean throwLastExceptionOnExhausted再試行が失敗したときに最後の例外をExhaustedRetryExceptionにラップしないようにするには、trueに設定します。- 戻り値:
- 最後の例外を
ExhaustedRetryExceptionにラップするかどうかを示すブールフラグ - 導入:
- 2.0.6
- デフォルト:
- false
recover
回復に使用するこのクラスのメソッドの名前。メソッドはRecoverアノテーションでマークされている必要があります。- 戻り値:
- 回復方法の名前
- 導入:
- 2.0.9
- デフォルト:
- ""
noRetryFor()を推奨。