13.3. ClusteredLockManager インターフェース
実験的な としてマーク されている ClusteredLockManager インターフェースは、ロックを定義、取得、および削除するエントリーポイントです。EmbeddedCacheManager の作成を自動的にリッスンし、EmbeddedCacheManager ごとのインスタンスの登録を続行します。ロックの状態を保存するのに必要な内部キャッシュを開始します。
ClusteredLockManager の取得は、以下の例のように EmbeddedClusteredLockManagerFactory.from(EmbeddedCacheManager) を呼び出すだけで簡単です。
// create or obtain your EmbeddedCacheManager EmbeddedCacheManager manager = ...; // retrieve the ClusteredLockManager ClusteredLockManager clusteredLockManager = EmbeddedClusteredLockManagerFactory.from(manager);
// create or obtain your EmbeddedCacheManager
EmbeddedCacheManager manager = ...;
// retrieve the ClusteredLockManager
ClusteredLockManager clusteredLockManager = EmbeddedClusteredLockManagerFactory.from(manager);
-
defineLock: 指定の名前とデフォルトのClusteredLockConfigurationでロックを定義します。既存の設定を上書きしません。 -
defineLock(String name, ClusteredLockConfiguration configuration): 指定された名前とClusteredLockConfigurationでロックを定義します。既存の設定を上書きしません。 -
ClusteredLock get(String name): 名前でClusteredLockを取得します。defineLockの呼び出しは、クラスター内で少なくとも 1 回実行する必要があります。getメソッド呼び出しの影響を理解するには、「 所有 者レベルのセクション」を参照してください。
現在、サポートされている唯一の所有権レベルは NODE です。
-
ClusteredLockConfiguration getConfiguration(String name):
ClusteredLock の設定を返します(ある場合)。
-
boolean isDefined(String name): ロックがすでに定義されているかどうかを確認します。 -
CompletableFuture<Boolean> remove(String name):ClusteredLockが存在する場合は削除します。 -
CompletableFuture<Boolean> forceRelease(String name): Releases - または unlocks -ClusteredLock- if such exists, if such exists, whether they are keep it at a certain time.このメソッドを呼び出すと、同時実行の問題を引き起こす可能性があり、例外的な状況 で使用する必要があります。