Package org.redisson.api
Interface RSemaphoreReactive
-
- All Superinterfaces:
RExpirableReactive,RObjectReactive
public interface RSemaphoreReactive extends RExpirableReactive
Reactive interface of Redis basedSemaphore.Works in non-fair mode. Therefore order of acquiring is unpredictable.
- Author:
- Nikita Koksharov
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description reactor.core.publisher.Mono<Void>acquire()Acquires a permit.reactor.core.publisher.Mono<Void>acquire(int permits)Acquires defined amount ofpermits.reactor.core.publisher.Mono<Void>addPermits(int permits)Increases or decreases the number of available permits by defined value.reactor.core.publisher.Mono<Integer>availablePermits()Returns amount of available permits.reactor.core.publisher.Mono<Integer>drainPermits()Acquires and returns all permits that are immediately available.reactor.core.publisher.Mono<Void>release()Releases a permit.reactor.core.publisher.Mono<Void>release(int permits)Releases defined amount ofpermits.reactor.core.publisher.Mono<Boolean>tryAcquire()Acquires a permit.reactor.core.publisher.Mono<Boolean>tryAcquire(int permits)Tries to acquire defined amount of currently availablepermits.reactor.core.publisher.Mono<Boolean>tryAcquire(int permits, long waitTime, TimeUnit unit)Tries to acquire defined amount of currently availablepermits.reactor.core.publisher.Mono<Boolean>tryAcquire(long waitTime, TimeUnit unit)Tries to acquire currently available permit.reactor.core.publisher.Mono<Boolean>trySetPermits(int permits)Tries to set number of permits.-
Methods inherited from interface org.redisson.api.RExpirableReactive
clearExpire, expire, expireAt, expireAt, expireAt, remainTimeToLive
-
Methods inherited from interface org.redisson.api.RObjectReactive
addListener, copy, delete, dump, getCodec, getIdleTime, getName, isExists, migrate, move, removeListener, rename, renamenx, restore, restore, restoreAndReplace, restoreAndReplace, sizeInMemory, touch, unlink
-
-
-
-
Method Detail
-
tryAcquire
reactor.core.publisher.Mono<Boolean> tryAcquire()
Acquires a permit. Waits if necessary until a permit became available.- Returns:
trueif a permit was acquired andfalseotherwise
-
tryAcquire
reactor.core.publisher.Mono<Boolean> tryAcquire(int permits)
Tries to acquire defined amount of currently availablepermits.- Parameters:
permits- the number of permits to acquire- Returns:
trueif permits were acquired andfalseotherwise
-
acquire
reactor.core.publisher.Mono<Void> acquire()
Acquires a permit. Waits if necessary until a permit became available.- Returns:
- void
-
acquire
reactor.core.publisher.Mono<Void> acquire(int permits)
Acquires defined amount ofpermits. Waits if necessary until all permits became available.- Parameters:
permits- the number of permits to acquire- Returns:
- void
- Throws:
IllegalArgumentException- ifpermitsis negative
-
release
reactor.core.publisher.Mono<Void> release()
Releases a permit.- Returns:
- void
-
release
reactor.core.publisher.Mono<Void> release(int permits)
Releases defined amount ofpermits.- Parameters:
permits- amount- Returns:
- void
-
trySetPermits
reactor.core.publisher.Mono<Boolean> trySetPermits(int permits)
Tries to set number of permits.- Parameters:
permits- - number of permits- Returns:
trueif permits has been set successfully, otherwisefalse.
-
tryAcquire
reactor.core.publisher.Mono<Boolean> tryAcquire(long waitTime, TimeUnit unit)
Tries to acquire currently available permit. Waits up to definedwaitTimeif necessary until a permit became available.- Parameters:
waitTime- the maximum time to waitunit- the time unit- Returns:
trueif a permit was acquired andfalseotherwise
-
tryAcquire
reactor.core.publisher.Mono<Boolean> tryAcquire(int permits, long waitTime, TimeUnit unit)
Tries to acquire defined amount of currently availablepermits. Waits up to definedwaitTimeif necessary until all permits became available.- Parameters:
permits- amount of permitswaitTime- the maximum time to waitunit- the time unit- Returns:
trueif permits were acquired andfalseotherwise
-
addPermits
reactor.core.publisher.Mono<Void> addPermits(int permits)
Increases or decreases the number of available permits by defined value.- Parameters:
permits- amount of permits to add/remove
-
availablePermits
reactor.core.publisher.Mono<Integer> availablePermits()
Returns amount of available permits.- Returns:
- number of permits
-
drainPermits
reactor.core.publisher.Mono<Integer> drainPermits()
Acquires and returns all permits that are immediately available.- Returns:
- number of permits
-
-