クラス JdbcLockRegistry
java.lang.ObjectSE
org.springframework.integration.jdbc.lock.JdbcLockRegistry
- 実装済みのインターフェース一覧:
ExpirableLockRegistry<DistributedLock>, LockRegistry<DistributedLock>, RenewableLockRegistry<DistributedLock>
public class JdbcLockRegistry
extends ObjectSE
implements ExpirableLockRegistry<DistributedLock>, RenewableLockRegistry<DistributedLock>
共有データベースを使用してロックを調整する
ExpirableLockRegistry。DefaultLockRegistry と同じセマンティクスを提供しますが、基盤となるデータベースがトランザクションで「直列化可能な」分離レベルをサポートしている限り、取得されるロックはグローバルになります。 ロックインスタンスは、キーごとにキャッシュされ、後で再利用されます。キャッシュ内のすべてのロックが取得された場合、obtain(Object) メソッドは CannotAcquireLockException 例外をスローします。そうでない場合、古い未使用のロックはキャッシュから削除されます。このような孤立した JdbcLockRegistry.JdbcLock をロックしようとすると、同じキーに対して異なるスレッドから二重ロックが発生するのを防ぐため、別の CannotAcquireLockException 例外がスローされます。
- 導入:
- 4.3
- 作成者:
- Dave Syer, Artem Bilan, Vedran Pavic, Kai Zimmermann, Bartosz Rempuszewski, Gary Russell, Alexandre Strubel, Stefan Vassilev, Olivier Hubaut, Fran Aranda, Unseok Kim, Christian Tzolov, Myeonghyeon Lee, Eddie Cho
フィールド概要
フィールドコンストラクター概要
コンストラクターコンストラクター説明JdbcLockRegistry(LockRepository client) 提供されたLockRepositoryに基づいてインスタンスを構築します。JdbcLockRegistry(LockRepository client, DurationSE expireAfter) 指定されたロック有効期限でロックレジストリを作成します。方法の概要
修飾子と型メソッド説明voidexpireUnusedOlderThan(long age) 現在ロックされていない「年齢」より前に最後に取得されたロックを削除します。パラメーターオブジェクトに関連付けられたロックを取得します。protected StringSEvoidロックの存続時間を更新すると、パラメーターオブジェクトに関連付けられます。voidrenewLock(ObjectSE lockKey, DurationSE customTtl) ロックの有効期間を更新し、特定の値を持つパラメーターオブジェクトに関連付けます。voidsetCacheCapacity(int cacheCapacity) キャッシュされたロックの容量を設定します。voidsetIdleBetweenTries(DurationSE idleBetweenTries) ロックレコードの挿入 / 更新の試行間にスリープするDurationSE を指定します。toString()クラス ObjectSE から継承されたメソッド
clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, wait, waitSE, waitSEインターフェース LockRegistry から継承されたメソッド
executeLocked, executeLocked, executeLocked, executeLockedインターフェース RenewableLockRegistry から継承されたメソッド
setRenewalTaskScheduler
フィールドの詳細
DEFAULT_TTL
コンストラクターの詳細
JdbcLockRegistry
提供されたLockRepositoryに基づいてインスタンスを構築します。- パラメーター:
client- 依存するLockRepository。
JdbcLockRegistry
指定されたロック有効期限でロックレジストリを作成します。- パラメーター:
client- 依存するLockRepository。expireAfter-DurationSE の有効期限。- 導入:
- 7.0
方法の詳細
setIdleBetweenTries
ロックレコードの挿入 / 更新試行間のスリープ時間(DurationSE)を指定します。デフォルトは 100 ミリ秒です。- パラメーター:
idleBetweenTries-DurationSE は、挿入 / 更新の試行の間にスリープします。- 導入:
- 5.1.8
setCacheCapacity
public void setCacheCapacity(int cacheCapacity) キャッシュされたロックの容量を設定します。現在キャッシュされているロックの数が新しい容量を超えた場合、このメソッドは使用されていないロックを削除しようとします。- パラメーター:
cacheCapacity- キャッシュされたロックの容量(デフォルトは 100_000)。- 導入:
- 5.5.6
- 関連事項:
obtain
インターフェースからコピーされた説明:LockRegistryパラメーターオブジェクトに関連付けられたロックを取得します。- 次で指定:
- インターフェース
LockRegistry<DistributedLock>内のobtain - パラメーター:
lockKey- ロックが関連付けられているオブジェクト。- 戻り値:
- 関連するロック。
pathFor
expireUnusedOlderThan
public void expireUnusedOlderThan(long age) インターフェースからコピーされた説明:ExpirableLockRegistry現在ロックされていない「年齢」より前に最後に取得されたロックを削除します。- 次で指定:
- インターフェース
ExpirableLockRegistry<DistributedLock>内のexpireUnusedOlderThan - パラメーター:
age- ロックが最後に取得されてからの時間。
renewLock
インターフェースからコピーされた説明:RenewableLockRegistryロックの存続時間を更新すると、パラメーターオブジェクトに関連付けられます。ロックは現在のスレッドによって保持される必要があります- 次で指定:
- インターフェース
RenewableLockRegistry<DistributedLock>内のrenewLock - パラメーター:
lockKey- ロックが関連付けられているオブジェクト。
renewLock
インターフェースからコピーされた説明:RenewableLockRegistryロックの存続時間の更新は、特定の値を持つパラメーターオブジェクトに関連付けられます。ロックは現在のスレッドによって保持されている必要があります。- 次で指定:
- インターフェース
RenewableLockRegistry<DistributedLock>内のrenewLock - パラメーター:
lockKey- ロックが関連付けられているオブジェクト。customTtl- ロック状態データの特定の有効期間
toString