public class RedissonLock extends RedissonObject implements RLock
Lock
Implements reentrant lock.Implements a non-fair locking so doesn't guarantees an acquire order.
| Modifier and Type | Field and Description |
|---|---|
protected long |
internalLockLeaseTime |
protected static LockPubSub |
PUBSUB |
codec| Constructor and Description |
|---|
RedissonLock(CommandAsyncExecutor commandExecutor,
String name) |
| Modifier and Type | Method and Description |
|---|---|
protected RFuture<Void> |
acquireFailedAsync(long threadId) |
boolean |
clearExpire()
Clear an expire timeout or expire date for object.
|
RFuture<Boolean> |
clearExpireAsync()
Clear an expire timeout or expire date for object in async mode.
|
RFuture<Boolean> |
deleteAsync()
Delete object in async mode
|
boolean |
expire(long timeToLive,
TimeUnit timeUnit)
Set a timeout for object.
|
RFuture<Boolean> |
expireAsync(long timeToLive,
TimeUnit timeUnit)
Set a timeout for object in async mode.
|
boolean |
expireAt(Date timestamp)
Set an expire date for object.
|
boolean |
expireAt(long timestamp)
Set an expire date for object.
|
RFuture<Boolean> |
expireAtAsync(Date timestamp)
Set an expire date for object in async mode.
|
RFuture<Boolean> |
expireAtAsync(long timestamp)
Set an expire date for object in async mode.
|
void |
forceUnlock()
Unlocks lock independently of state
|
RFuture<Boolean> |
forceUnlockAsync() |
protected RedissonLockEntry |
getEntry(long threadId) |
protected String |
getEntryName() |
int |
getHoldCount()
Number of holds on this lock by the current thread
|
RFuture<Boolean> |
isExistsAsync()
Check object existence in async mode.
|
boolean |
isHeldByCurrentThread()
Checks if this lock is held by the current thread
|
boolean |
isLocked()
Checks if this lock locked by any thread
|
void |
lock() |
void |
lock(long leaseTime,
TimeUnit unit)
Acquires the lock.
|
RFuture<Void> |
lockAsync() |
RFuture<Void> |
lockAsync(long currentThreadId) |
RFuture<Void> |
lockAsync(long leaseTime,
TimeUnit unit) |
RFuture<Void> |
lockAsync(long leaseTime,
TimeUnit unit,
long currentThreadId) |
void |
lockInterruptibly() |
void |
lockInterruptibly(long leaseTime,
TimeUnit unit)
Acquires the lock.
|
Condition |
newCondition() |
long |
remainTimeToLive()
Remaining time to live of Redisson object that has a timeout
|
RFuture<Long> |
remainTimeToLiveAsync()
Remaining time to live of Redisson object that has a timeout
|
protected RFuture<RedissonLockEntry> |
subscribe(long threadId) |
boolean |
tryLock() |
boolean |
tryLock(long waitTime,
long leaseTime,
TimeUnit unit)
Returns
true as soon as the lock is acquired. |
boolean |
tryLock(long waitTime,
TimeUnit unit) |
RFuture<Boolean> |
tryLockAsync() |
RFuture<Boolean> |
tryLockAsync(long threadId) |
RFuture<Boolean> |
tryLockAsync(long waitTime,
long leaseTime,
TimeUnit unit) |
RFuture<Boolean> |
tryLockAsync(long waitTime,
long leaseTime,
TimeUnit unit,
long currentThreadId) |
RFuture<Boolean> |
tryLockAsync(long waitTime,
TimeUnit unit) |
void |
unlock() |
RFuture<Void> |
unlockAsync() |
RFuture<Void> |
unlockAsync(long threadId) |
protected RFuture<Boolean> |
unlockInnerAsync(long threadId) |
protected void |
unsubscribe(RFuture<RedissonLockEntry> future,
long threadId) |
await, copy, copyAsync, delete, encode, encode, encode, encodeMapKey, encodeMapKeys, encodeMapValue, encodeMapValues, get, getCodec, getName, getName, isExists, migrate, migrateAsync, move, moveAsync, prefixName, rename, renameAsync, renamenx, renamenxAsync, suffixName, toSeconds, touch, touchAsync, unlink, unlinkAsyncclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitclearExpire, expire, expireAt, expireAt, remainTimeToLivecopy, delete, getCodec, getName, isExists, migrate, move, rename, renamenx, touch, unlinkclearExpireAsync, expireAsync, expireAtAsync, expireAtAsync, remainTimeToLiveAsynccopyAsync, migrateAsync, moveAsync, renameAsync, renamenxAsync, touchAsync, unlinkAsyncprotected long internalLockLeaseTime
protected static final LockPubSub PUBSUB
public RedissonLock(CommandAsyncExecutor commandExecutor, String name)
protected String getEntryName()
public void lock(long leaseTime,
TimeUnit unit)
RLockIf the lock is not available then the current thread becomes
disabled for thread scheduling purposes and lies dormant until the
lock has been acquired.
If the lock is acquired, it is held until unlock is invoked,
or until leaseTime milliseconds have passed
since the lock was granted - whichever comes first.
lock in interface RLockleaseTime - the maximum time to hold the lock after granting it,
before automatically releasing it if it hasn't already been released by invoking unlock.
If leaseTime is -1, hold the lock until explicitly unlocked.unit - the time unit of the leaseTime argumentpublic void lockInterruptibly()
throws InterruptedException
lockInterruptibly in interface LockInterruptedExceptionpublic void lockInterruptibly(long leaseTime,
TimeUnit unit)
throws InterruptedException
RLockIf the lock is not available then the current thread becomes
disabled for thread scheduling purposes and lies dormant until the
lock has been acquired.
If the lock is acquired, it is held until unlock is invoked,
or until leaseTime have passed
since the lock was granted - whichever comes first.
lockInterruptibly in interface RLockleaseTime - the maximum time to hold the lock after granting it,
before automatically releasing it if it hasn't already been released by invoking unlock.
If leaseTime is -1, hold the lock until explicitly unlocked.unit - the time unit of the leaseTime argumentInterruptedException - - if the thread is interrupted before or during this method.public boolean tryLock(long waitTime,
long leaseTime,
TimeUnit unit)
throws InterruptedException
RLocktrue as soon as the lock is acquired.
If the lock is currently held by another thread in this or any
other process in the distributed system this method keeps trying
to acquire the lock for up to waitTime before
giving up and returning false. If the lock is acquired,
it is held until unlock is invoked, or until leaseTime
have passed since the lock was granted - whichever comes first.tryLock in interface RLockwaitTime - the maximum time to aquire the lockleaseTime - lease timeunit - time unittrue if lock has been successfully acquiredInterruptedException - - if the thread is interrupted before or during this method.protected RedissonLockEntry getEntry(long threadId)
protected RFuture<RedissonLockEntry> subscribe(long threadId)
protected void unsubscribe(RFuture<RedissonLockEntry> future, long threadId)
public boolean tryLock(long waitTime,
TimeUnit unit)
throws InterruptedException
tryLock in interface LockInterruptedExceptionpublic Condition newCondition()
newCondition in interface Lockpublic void forceUnlock()
RLockforceUnlock in interface RLockpublic RFuture<Boolean> forceUnlockAsync()
forceUnlockAsync in interface RLockAsyncpublic boolean isLocked()
RLockpublic RFuture<Boolean> isExistsAsync()
RObjectAsyncisExistsAsync in interface RObjectAsyncisExistsAsync in class RedissonObjecttrue if object exists and false otherwisepublic boolean isHeldByCurrentThread()
RLockisHeldByCurrentThread in interface RLocktrue if held by current thread
otherwise falsepublic int getHoldCount()
RLockgetHoldCount in interface RLock0 if this lock is not held by current threadpublic RFuture<Boolean> deleteAsync()
RObjectAsyncdeleteAsync in interface RObjectAsyncdeleteAsync in class RedissonObjecttrue if object was deleted false if notpublic RFuture<Void> unlockAsync()
unlockAsync in interface RLockAsyncpublic RFuture<Void> unlockAsync(long threadId)
unlockAsync in interface RLockAsyncpublic RFuture<Void> lockAsync()
lockAsync in interface RLockAsyncpublic RFuture<Void> lockAsync(long leaseTime, TimeUnit unit)
lockAsync in interface RLockAsyncpublic RFuture<Void> lockAsync(long currentThreadId)
lockAsync in interface RLockAsyncpublic RFuture<Void> lockAsync(long leaseTime, TimeUnit unit, long currentThreadId)
lockAsync in interface RLockAsyncpublic RFuture<Boolean> tryLockAsync()
tryLockAsync in interface RLockAsyncpublic RFuture<Boolean> tryLockAsync(long threadId)
tryLockAsync in interface RLockAsyncpublic RFuture<Boolean> tryLockAsync(long waitTime, TimeUnit unit)
tryLockAsync in interface RLockAsyncpublic RFuture<Boolean> tryLockAsync(long waitTime, long leaseTime, TimeUnit unit)
tryLockAsync in interface RLockAsyncpublic RFuture<Boolean> tryLockAsync(long waitTime, long leaseTime, TimeUnit unit, long currentThreadId)
tryLockAsync in interface RLockAsyncpublic boolean expire(long timeToLive,
TimeUnit timeUnit)
RExpirableexpire in interface RExpirabletimeToLive - - timeout before object will be deletedtimeUnit - - timeout time unittrue if the timeout was set and false if notpublic RFuture<Boolean> expireAsync(long timeToLive, TimeUnit timeUnit)
RExpirableAsyncexpireAsync in interface RExpirableAsynctimeToLive - - timeout before object will be deletedtimeUnit - - timeout time unittrue if the timeout was set and false if notpublic boolean expireAt(long timestamp)
RExpirableexpireAt in interface RExpirabletimestamp - - expire date in milliseconds (Unix timestamp)true if the timeout was set and false if notpublic RFuture<Boolean> expireAtAsync(long timestamp)
RExpirableAsyncexpireAtAsync in interface RExpirableAsynctimestamp - - expire date in seconds (Unix timestamp)true if the timeout was set and false if notpublic boolean expireAt(Date timestamp)
RExpirableexpireAt in interface RExpirabletimestamp - - expire datetrue if the timeout was set and false if notpublic RFuture<Boolean> expireAtAsync(Date timestamp)
RExpirableAsyncexpireAtAsync in interface RExpirableAsynctimestamp - - expire datetrue if the timeout was set and false if notpublic boolean clearExpire()
RExpirableclearExpire in interface RExpirabletrue if timeout was removed
false if object does not exist or does not have an associated timeoutpublic RFuture<Boolean> clearExpireAsync()
RExpirableAsyncclearExpireAsync in interface RExpirableAsynctrue if the timeout was cleared and false if notpublic long remainTimeToLive()
RExpirableremainTimeToLive in interface RExpirablepublic RFuture<Long> remainTimeToLiveAsync()
RExpirableAsyncremainTimeToLiveAsync in interface RExpirableAsyncCopyright © 2014–2018 The Redisson Project. All rights reserved.