public abstract class ConcurrencyThrottleSupport extends ObjectSE implements SerializableSE
基本クラスとして使用するように設計されており、サブクラスはワークフローの適切なポイントで beforeAccess()
メソッドと afterAccess()
メソッドを呼び出します。afterAccess
は通常、finally
ブロックで呼び出される必要があることに注意してください。
このサポートクラスのデフォルトの同時実行制限は -1(「無制限の同時実行」)です。サブクラスはこのデフォルトをオーバーライドできます。使用している具象クラスの javadoc を確認してください。
setConcurrencyLimit(int)
, beforeAccess()
, afterAccess()
, ConcurrencyThrottleInterceptor
, Serializable
SE, 直列化された形式 修飾子と型 | フィールドと説明 |
---|---|
protected Log | logger 直列化を最適化するための一時的。 |
static int | NO_CONCURRENCY 並行性を「オフ」に切り替える: つまり、同時呼び出しを許可しません。 |
static int | UNBOUNDED_CONCURRENCY 任意の数の同時呼び出しを許可します。つまり、同時実行を抑制しません。 |
コンストラクターと説明 |
---|
ConcurrencyThrottleSupport() |
修飾子と型 | メソッドと説明 |
---|---|
protected void | afterAccess() 具象サブクラスのメイン実行ロジックの後に呼び出されます。 |
protected void | beforeAccess() 具象サブクラスのメイン実行ロジックの前に呼び出されます。 |
int | getConcurrencyLimit() 許可される同時アクセス試行の最大数を返します。 |
boolean | isThrottleActive() このスロットルが現在アクティブかどうかを返します。 |
void | setConcurrencyLimit(int concurrencyLimit) 許可される同時アクセス試行の最大数を設定します。 |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
public static final int UNBOUNDED_CONCURRENCY
public static final int NO_CONCURRENCY
protected transient Log logger
public void setConcurrencyLimit(int concurrencyLimit)
原則として、この制限は実行時に変更できますが、通常は構成時間の設定として設計されています。
NOTE: 実行時に -1 と具体的な制限を切り替えないでください。同時実行数の一貫性が失われます: 制限値 -1 は、同時実行カウントを完全にオフにします。
public int getConcurrencyLimit()
public boolean isThrottleActive()
true
getConcurrencyLimit()
protected void beforeAccess()
この実装では、同時実行性スロットルが適用されます。
afterAccess()
protected void afterAccess()
beforeAccess()