クラス ConcurrencyThrottleSupport
java.lang.ObjectSE
org.springframework.util.ConcurrencyThrottleSupport
- 実装済みのインターフェース一覧:
SerializableSE
- 既知の直属サブクラス
ConcurrencyThrottleInterceptor, SyncTaskExecutor
特定のリソースへの同時アクセスを調整するためのサポートクラス。
基本クラスとして使用するように設計されており、サブクラスはワークフローの適切なポイントで beforeAccess() メソッドと afterAccess() メソッドを呼び出します。afterAccess は通常、finally ブロックで呼び出される必要があることに注意してください。
このサポートクラスのデフォルトの同時実行制限は UNBOUNDED_CONCURRENCY です。サブクラスはこのデフォルトをオーバーライドできます。使用している具象クラスの javadoc を確認してください。
- 導入:
- 1.2.5
- 作成者:
- Juergen Hoeller
- 関連事項:
フィールドのサマリー
フィールド修飾子と型フィールド説明protected org.apache.commons.logging.Log直列化を最適化するための一時的。static final int同時実行スロットルが無効になっていることを示す同時実行制限: 0。static final int無制限の同時実行を示す同時実行制限: -1。コンストラクターの概要
コンストラクター方法の概要
修飾子と型メソッド説明protected void具象サブクラスのメイン実行ロジックの後に呼び出されます。protected void具象サブクラスのメイン実行ロジックの前に呼び出されます。int許可される同時アクセス試行の最大数を返します。booleanこのスロットルが現在アクティブかどうかを返します。protected voidonAccessRejected(StringSE msg) 同時実行ポリシーまたは中断によりアクセスが拒否されたときにトリガーされます。protected void同時実行制限に達したときにbeforeAccess()によってトリガーされます。voidsetConcurrencyLimit(int concurrencyLimit) 許可される同時アクセス試行の最大数を設定します。
フィールドの詳細
UNBOUNDED_CONCURRENCY
public static final int UNBOUNDED_CONCURRENCY無制限の同時実行を示す同時実行制限: -1。制限をこの値に設定すると、無制限の同時アクセスが許可されます。つまり、同時実行は制限されません。
- 関連事項:
NO_CONCURRENCY
public static final int NO_CONCURRENCY同時実行スロットルが無効になっていることを示す同時実行制限: 0。制限をこの値に設定すると、すべてのアクセスが防止されます。
- 関連事項:
logger
protected transient org.apache.commons.logging.Log logger直列化を最適化するための一時的。
コンストラクターの詳細
ConcurrencyThrottleSupport
public ConcurrencyThrottleSupport()
メソッドの詳細
setConcurrencyLimit
public void setConcurrencyLimit(int concurrencyLimit) 同時アクセス試行の最大数を設定します。デフォルトの -1 は、同時アクセスの制限が全くないことを示します。原則として、この制限は実行時に変更できますが、通常は構成時間の設定として設計されています。
NOTE: 実行時に
-1と具体的な制限を切り替えないでください。切り替えると同時実行数のカウントに不整合が生じます。-1の制限は、事実上同時実行数のカウントを完全にオフにします。getConcurrencyLimit
public int getConcurrencyLimit()許可される同時アクセス試行の最大数を返します。isThrottleActive
public boolean isThrottleActive()このスロットルが現在アクティブかどうかを返します。- 戻り値:
- このインスタンスの同時実行制限がアクティブな場合、
true - 関連事項:
beforeAccess
protected void beforeAccess()具象サブクラスのメイン実行ロジックの前に呼び出されます。この実装では、同時実行性スロットルが適用されます。
- 関連事項:
onLimitReached
protected void onLimitReached()同時実行数の上限に達した際にbeforeAccess()によってトリガーされます。デフォルトの実装では、同時実行数が許容値に達するまでブロックされます。- 導入:
- 6.2.6
onAccessRejected
同時実行ポリシーまたは中断によりアクセスが拒否されたときにトリガーされます。実装では通常、対応する例外がスローされます。正常に終了した場合は、通常のアクセスが試行されます。
デフォルトの実装は
IllegalStateExceptionSE をスローします。- パラメーター:
msg- 拒否メッセージ (共通例外メッセージは、カスタムサブクラスでスペースで区切られた識別子を追加できるように設計されています。)- 導入:
- 7.0.4
afterAccess
protected void afterAccess()具象サブクラスのメイン実行ロジックの後に呼び出されます。- 関連事項: