public interface RPermitExpirableSemaphoreAsync extends RExpirableAsync
Each permit identified by own id and could be released only using its id. Permit id is a 128-bits unique random identifier generated each time during acquiring.
Works in non-fair mode. Therefore order of acquiring is unpredictable.
Modifier and Type | Method and Description |
---|---|
RFuture<String> |
acquireAsync()
Acquires a permit and returns its id.
|
RFuture<String> |
acquireAsync(long leaseTime,
TimeUnit unit)
Acquires a permit with defined
leaseTime and return its id. |
RFuture<Void> |
addPermitsAsync(int permits)
Increases or decreases the number of available permits by defined value.
|
RFuture<Integer> |
availablePermitsAsync()
Returns amount of available permits.
|
RFuture<Void> |
releaseAsync(String permitId)
Releases a permit by its id.
|
RFuture<String> |
tryAcquireAsync()
Tries to acquire currently available permit and return its id.
|
RFuture<String> |
tryAcquireAsync(long waitTime,
long leaseTime,
TimeUnit unit)
Tries to acquire currently available permit
with defined
leaseTime and return its id. |
RFuture<String> |
tryAcquireAsync(long waitTime,
TimeUnit unit)
Tries to acquire currently available permit and return its id.
|
RFuture<Boolean> |
tryReleaseAsync(String permitId)
Tries to release permit by its id.
|
RFuture<Boolean> |
trySetPermitsAsync(int permits)
Tries to set number of permits.
|
RFuture<Boolean> |
updateLeaseTimeAsync(String permitId,
long leaseTime,
TimeUnit unit)
Overrides and updates lease time for defined permit id.
|
clearExpireAsync, expireAsync, expireAsync, expireAtAsync, expireAtAsync, remainTimeToLiveAsync
addListenerAsync, copyAsync, deleteAsync, dumpAsync, getIdleTimeAsync, isExistsAsync, migrateAsync, moveAsync, removeListenerAsync, renameAsync, renamenxAsync, restoreAndReplaceAsync, restoreAndReplaceAsync, restoreAsync, restoreAsync, sizeInMemoryAsync, touchAsync, unlinkAsync
RFuture<String> acquireAsync()
RFuture<String> acquireAsync(long leaseTime, TimeUnit unit)
leaseTime
and return its id.
Waits if necessary until a permit became available.leaseTime
- permit lease timeunit
- time unitRFuture<String> tryAcquireAsync()
null
otherwiseRFuture<String> tryAcquireAsync(long waitTime, TimeUnit unit)
waitTime
if necessary until a permit became available.waitTime
- the maximum time to waitunit
- the time unitnull
if the waiting time elapsed before a permit was acquiredRFuture<String> tryAcquireAsync(long waitTime, long leaseTime, TimeUnit unit)
leaseTime
and return its id.
Waits up to defined waitTime
if necessary until a permit became available.waitTime
- the maximum time to waitleaseTime
- permit lease time, use -1 to make it permanentunit
- the time unitnull
if the waiting time elapsed before a permit was acquiredRFuture<Boolean> tryReleaseAsync(String permitId)
permitId
- permit idtrue
if a permit has been released and false
otherwiseRFuture<Void> releaseAsync(String permitId)
permitId
- - permit idRFuture<Integer> availablePermitsAsync()
RFuture<Boolean> trySetPermitsAsync(int permits)
permits
- - number of permitstrue
if permits has been set successfully, otherwise false
.RFuture<Void> addPermitsAsync(int permits)
permits
- amount of permits to add/removeRFuture<Boolean> updateLeaseTimeAsync(String permitId, long leaseTime, TimeUnit unit)
permitId
- permit idleaseTime
- permit lease time, use -1 to make it permanentunit
- the time unittrue
if permits has been updated successfully, otherwise false
.Copyright © 2014–2021 Redisson. All rights reserved.