Package com.coditory.sherlock.reactive
Interface ReactiveSherlock
-
public interface ReactiveSherlock
Creates and manages reactive distributed locks.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description ReactiveDistributedLock
createLock(java.lang.String lockId)
Create a distributed lock.ReactiveDistributedLock
createLock(java.lang.String lockId, java.time.Duration duration)
Create a lock.ReactiveDistributedLock
createOverridingLock(java.lang.String lockId)
Create a distributed overriding lock.ReactiveDistributedLock
createOverridingLock(java.lang.String lockId, java.time.Duration duration)
Create a distributed overriding lock.ReactiveDistributedLock
createReentrantLock(java.lang.String lockId)
Create a distributed reentrant lock.ReactiveDistributedLock
createReentrantLock(java.lang.String lockId, java.time.Duration duration)
Create a distributed reentrant lock.java.time.Duration
getLockDuration()
java.lang.String
getOwnerId()
default <T> T
map(java.util.function.Function<ReactiveSherlock,T> mapper)
-
-
-
Method Detail
-
getOwnerId
java.lang.String getOwnerId()
- Returns:
- owner id is most often the application instance id
-
getLockDuration
java.time.Duration getLockDuration()
- Returns:
- the default lock duration
-
createLock
ReactiveDistributedLock createLock(java.lang.String lockId)
Create a distributed lock. Lock expires aftergetLockDuration()
.- Parameters:
lockId
- the lock id- Returns:
- the lock
- See Also:
createLock(String, Duration)
-
createLock
ReactiveDistributedLock createLock(java.lang.String lockId, java.time.Duration duration)
Create a lock. Created lock may be acquired only once by the same application instance:assert reentrantLock.acquire() == true assert reentrantLock.acquire() == false
- Parameters:
lockId
- the lock idduration
- after that time lock expires and is released- Returns:
- the lock
-
createReentrantLock
ReactiveDistributedLock createReentrantLock(java.lang.String lockId)
Create a distributed reentrant lock. Lock expires aftergetLockDuration()
.- Parameters:
lockId
- the lock id- Returns:
- the reentrant lock
- See Also:
createReentrantLock(String, Duration)
-
createReentrantLock
ReactiveDistributedLock createReentrantLock(java.lang.String lockId, java.time.Duration duration)
Create a distributed reentrant lock. Reentrant lock maybe acquired multiple times by the same application instance:assert reentrantLock.acquire() == true assert reentrantLock.acquire() == true
- Parameters:
lockId
- the lock idduration
- after that time lock expires and is released- Returns:
- the reentrant lock
-
createOverridingLock
ReactiveDistributedLock createOverridingLock(java.lang.String lockId)
Create a distributed overriding lock. Lock expires aftergetLockDuration()
.- Parameters:
lockId
- the lock id- Returns:
- the reentrant lock
- See Also:
createOverridingLock(String, Duration)
-
createOverridingLock
ReactiveDistributedLock createOverridingLock(java.lang.String lockId, java.time.Duration duration)
Create a distributed overriding lock. Returned lock overrides lock state without checking if it was released.- Parameters:
lockId
- the lock idduration
- after that time lock expires and is released- Returns:
- the reentrant lock
-
map
default <T> T map(java.util.function.Function<ReactiveSherlock,T> mapper)
-
-