public final class RedisLockRegistry extends ObjectSE implements ExpirableLockRegistry, DisposableBean
ExpirableLockRegistry
の実装。ロックは、キー registryKey:lockKey
に保存されます。ロックは(デフォルトでは 60)秒後に期限切れになります。期限切れのロックのロックを解除するスレッドは、IllegalStateException
SE を取得します。保護されたリソースが危険にさらされた可能性があるため、これは重大なエラーと見なす必要があります。ロックは再入可能です。
ただし、ロックはレジストリによってスコープが設定されます。同じキーを持つ異なるレジストリからのロック (レジストリが同じ "registryKey" を使用している場合でも) は異なるロックであり、最初のロックがロックされている間は、同じスレッドで 2 番目のロックを取得することはできません。
注: これは、低遅延アプリケーションを対象としていません。これは、複数の JVM 間でのリソースロックを目的としています。
Condition
SE はサポートされていません。
コンストラクターと説明 |
---|
RedisLockRegistry(RedisConnectionFactory connectionFactory, StringSE registryKey) デフォルト(60 秒)のロック有効期限でロックレジストリを構築します。 |
RedisLockRegistry(RedisConnectionFactory connectionFactory, StringSE registryKey, long expireAfter) 指定されたロックの有効期限を使用してロックレジストリを構築します。 |
修飾子と型 | メソッドと説明 |
---|---|
void | destroy() |
void | expireUnusedOlderThan(long age) 現在ロックされていない「年齢」より前に最後に取得されたロックを削除します。 |
LockSE | obtain(ObjectSE lockKey) パラメーターオブジェクトに関連付けられたロックを取得します。 |
void | setExecutor(ExecutorSE executor) Executor SE を設定します。指定されていない場合は、デフォルトのキャッシュされたスレッドプール Executor が使用されます。 |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
public RedisLockRegistry(RedisConnectionFactory connectionFactory, StringSE registryKey)
connectionFactory
- 接続ファクトリ。registryKey
- ロックのキープレフィックス。public RedisLockRegistry(RedisConnectionFactory connectionFactory, StringSE registryKey, long expireAfter)
connectionFactory
- 接続ファクトリ。registryKey
- ロックのキープレフィックス。expireAfter
- ミリ秒単位の有効期限。public void setExecutor(ExecutorSE executor)
Executor
SE を設定します。指定されていない場合は、デフォルトのキャッシュされたスレッドプール Executor が使用されます。executor
- エグゼキュータサービス public LockSE obtain(ObjectSE lockKey)
LockRegistry
LockRegistry
の obtain
lockKey
- ロックが関連付けられているオブジェクト。public void expireUnusedOlderThan(long age)
ExpirableLockRegistry
ExpirableLockRegistry
の expireUnusedOlderThan
age
- ロックが最後に取得されてからの時間。public void destroy()
DisposableBean
の destroy