Package org.redisson

Class RedissonLock

    • Field Detail

      • internalLockLeaseTime

        protected long internalLockLeaseTime
      • PUBSUB

        protected static final LockPubSub PUBSUB
    • Method Detail

      • getEntryName

        protected String getEntryName()
      • getLockName

        protected String getLockName​(long threadId)
      • lock

        public void lock()
        Specified by:
        lock in interface Lock
      • lock

        public void lock​(long leaseTime,
                         TimeUnit unit)
        Description copied from interface: RLock
        Acquires the lock.

        If 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.

        Specified by:
        lock in interface RLock
        Parameters:
        leaseTime - 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 argument
      • lockInterruptibly

        public void lockInterruptibly​(long leaseTime,
                                      TimeUnit unit)
                               throws InterruptedException
        Description copied from interface: RLock
        Acquires the lock.

        If 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.

        Specified by:
        lockInterruptibly in interface RLock
        Parameters:
        leaseTime - 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 argument
        Throws:
        InterruptedException - - if the thread is interrupted before or during this method.
      • tryLock

        public boolean tryLock()
        Specified by:
        tryLock in interface Lock
      • renewExpirationAsync

        protected RFuture<Boolean> renewExpirationAsync​(long threadId)
      • acquireFailedAsync

        protected RFuture<Void> acquireFailedAsync​(long threadId)
      • tryLock

        public boolean tryLock​(long waitTime,
                               long leaseTime,
                               TimeUnit unit)
                        throws InterruptedException
        Description copied from interface: RLock
        Returns true 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.
        Specified by:
        tryLock in interface RLock
        Parameters:
        waitTime - the maximum time to aquire the lock
        leaseTime - lease time
        unit - time unit
        Returns:
        true if lock has been successfully acquired
        Throws:
        InterruptedException - - if the thread is interrupted before or during this method.
      • unlock

        public void unlock()
        Specified by:
        unlock in interface Lock
      • forceUnlock

        public boolean forceUnlock()
        Description copied from interface: RLock
        Unlocks lock independently of state
        Specified by:
        forceUnlock in interface RLock
        Returns:
        true if unlocked otherwise false
      • isLocked

        public boolean isLocked()
        Description copied from interface: RLock
        Checks if this lock locked by any thread
        Specified by:
        isLocked in interface RLock
        Returns:
        true if locked otherwise false
      • isHeldByCurrentThread

        public boolean isHeldByCurrentThread()
        Description copied from interface: RLock
        Checks if this lock is held by the current thread
        Specified by:
        isHeldByCurrentThread in interface RLock
        Returns:
        true if held by current thread otherwise false
      • getHoldCountAsync

        public RFuture<Integer> getHoldCountAsync()
        Description copied from interface: RLockAsync
        Number of holds on this lock by the current thread
        Specified by:
        getHoldCountAsync in interface RLockAsync
        Returns:
        holds or 0 if this lock is not held by current thread
      • getHoldCount

        public int getHoldCount()
        Description copied from interface: RLock
        Number of holds on this lock by the current thread
        Specified by:
        getHoldCount in interface RLock
        Returns:
        holds or 0 if this lock is not held by current thread
      • unlockInnerAsync

        protected RFuture<Boolean> unlockInnerAsync​(long threadId)
      • lockAsync

        public RFuture<Void> lockAsync​(long leaseTime,
                                       TimeUnit unit)
        Description copied from interface: RLockAsync
        Acquires the lock.

        If 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.

        Specified by:
        lockAsync in interface RLockAsync
        Parameters:
        leaseTime - 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 argument
        Returns:
        void
      • expire

        public boolean expire​(long timeToLive,
                              TimeUnit timeUnit)
        Description copied from interface: RExpirable
        Set a timeout for object. After the timeout has expired, the key will automatically be deleted.
        Specified by:
        expire in interface RExpirable
        Parameters:
        timeToLive - - timeout before object will be deleted
        timeUnit - - timeout time unit
        Returns:
        true if the timeout was set and false if not
      • expireAsync

        public RFuture<Boolean> expireAsync​(long timeToLive,
                                            TimeUnit timeUnit)
        Description copied from interface: RExpirableAsync
        Set a timeout for object in async mode. After the timeout has expired, the key will automatically be deleted.
        Specified by:
        expireAsync in interface RExpirableAsync
        Parameters:
        timeToLive - - timeout before object will be deleted
        timeUnit - - timeout time unit
        Returns:
        true if the timeout was set and false if not
      • expireAt

        public boolean expireAt​(long timestamp)
        Description copied from interface: RExpirable
        Set an expire date for object. When expire date comes the key will automatically be deleted.
        Specified by:
        expireAt in interface RExpirable
        Parameters:
        timestamp - - expire date in milliseconds (Unix timestamp)
        Returns:
        true if the timeout was set and false if not
      • expireAtAsync

        public RFuture<Boolean> expireAtAsync​(long timestamp)
        Description copied from interface: RExpirableAsync
        Set an expire date for object in async mode. When expire date comes the key will automatically be deleted.
        Specified by:
        expireAtAsync in interface RExpirableAsync
        Parameters:
        timestamp - - expire date in milliseconds (Unix timestamp)
        Returns:
        true if the timeout was set and false if not
      • expireAt

        public boolean expireAt​(Date timestamp)
        Description copied from interface: RExpirable
        Set an expire date for object. When expire date comes the key will automatically be deleted.
        Specified by:
        expireAt in interface RExpirable
        Parameters:
        timestamp - - expire date
        Returns:
        true if the timeout was set and false if not
      • expireAtAsync

        public RFuture<Boolean> expireAtAsync​(Date timestamp)
        Description copied from interface: RExpirableAsync
        Set an expire date for object in async mode. When expire date comes the key will automatically be deleted.
        Specified by:
        expireAtAsync in interface RExpirableAsync
        Parameters:
        timestamp - - expire date
        Returns:
        true if the timeout was set and false if not
      • clearExpire

        public boolean clearExpire()
        Description copied from interface: RExpirable
        Clear an expire timeout or expire date for object.
        Specified by:
        clearExpire in interface RExpirable
        Returns:
        true if timeout was removed false if object does not exist or does not have an associated timeout
      • clearExpireAsync

        public RFuture<Boolean> clearExpireAsync()
        Description copied from interface: RExpirableAsync
        Clear an expire timeout or expire date for object in async mode. Object will not be deleted.
        Specified by:
        clearExpireAsync in interface RExpirableAsync
        Returns:
        true if the timeout was cleared and false if not
      • remainTimeToLive

        public long remainTimeToLive()
        Description copied from interface: RExpirable
        Remaining time to live of Redisson object that has a timeout
        Specified by:
        remainTimeToLive in interface RExpirable
        Returns:
        time in milliseconds -2 if the key does not exist. -1 if the key exists but has no associated expire.
      • remainTimeToLiveAsync

        public RFuture<Long> remainTimeToLiveAsync()
        Description copied from interface: RExpirableAsync
        Remaining time to live of Redisson object that has a timeout
        Specified by:
        remainTimeToLiveAsync in interface RExpirableAsync
        Returns:
        time in milliseconds -2 if the key does not exist. -1 if the key exists but has no associated expire.