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()