Package org.redisson.api
Interface RBlockingQueueReactive<V>
-
- Type Parameters:
V
- the type of elements held in this collection
- All Superinterfaces:
RCollectionReactive<V>
,RExpirableReactive
,RObjectReactive
,RQueueReactive<V>
- All Known Subinterfaces:
RBlockingDequeReactive<V>
,RTransferQueueReactive<V>
public interface RBlockingQueueReactive<V> extends RQueueReactive<V>
Reactive interface for BlockingQueue object- Author:
- Nikita Koksharov
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description reactor.core.publisher.Mono<Integer>
drainTo(Collection<? super V> c)
Removes all available elements from this queue and adds them to the given collection in async mode.reactor.core.publisher.Mono<Integer>
drainTo(Collection<? super V> c, int maxElements)
Removes at most the given number of available elements from this queue and adds them to the given collection in async mode.reactor.core.publisher.Mono<V>
poll(long timeout, TimeUnit unit)
Retrieves and removes the head of this queue in async mode, waiting up to the specified wait time if necessary for an element to become available.reactor.core.publisher.Mono<V>
pollFromAny(long timeout, TimeUnit unit, String... queueNames)
Retrieves and removes first available head element of any queue, waiting up to the specified wait time if necessary for an element to become available in any of defined queues including queue own.reactor.core.publisher.Mono<V>
pollLastAndOfferFirstTo(String queueName, long timeout, TimeUnit unit)
Retrieves and removes last available tail element of this queue and adds it at the head ofqueueName
, waiting up to the specified wait time if necessary for an element to become available.reactor.core.publisher.Mono<Void>
put(V e)
Inserts the specified element into this queue in async mode, waiting if necessary for space to become available.reactor.core.publisher.Mono<V>
take()
Retrieves and removes the head of this queue in async mode, waiting if necessary until an element becomes available.reactor.core.publisher.Flux<V>
takeElements()
Retrieves and removes continues stream of elements from the head of this queue.reactor.core.publisher.Mono<V>
takeLastAndOfferFirstTo(String queueName)
Retrieves and removes last available tail element of any queue and adds it at the head ofqueueName
, waiting if necessary for an element to become available in any of defined queues including queue itself.-
Methods inherited from interface org.redisson.api.RCollectionReactive
add, addAll, addAll, contains, containsAll, iterator, remove, removeAll, retainAll, size
-
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
-
Methods inherited from interface org.redisson.api.RQueueReactive
offer, peek, poll, poll, pollLastAndOfferFirstTo, readAll
-
-
-
-
Method Detail
-
pollFromAny
reactor.core.publisher.Mono<V> pollFromAny(long timeout, TimeUnit unit, String... queueNames)
Retrieves and removes first available head element of any queue, waiting up to the specified wait time if necessary for an element to become available in any of defined queues including queue own.- Parameters:
queueNames
- - names of queuetimeout
- how long to wait before giving up, in units ofunit
unit
- aTimeUnit
determining how to interpret thetimeout
parameter- Returns:
- Mono object with the head of this queue, or
null
if the specified waiting time elapses before an element is available
-
drainTo
reactor.core.publisher.Mono<Integer> drainTo(Collection<? super V> c, int maxElements)
Removes at most the given number of available elements from this queue and adds them to the given collection in async mode. A failure encountered while attempting to add elements to collectionc
may result in elements being in neither, either or both collections when the associated exception is thrown. Attempts to drain a queue to itself result inIllegalArgumentException
. Further, the behavior of this operation is undefined if the specified collection is modified while the operation is in progress.- Parameters:
c
- the collection to transfer elements intomaxElements
- the maximum number of elements to transfer- Returns:
- the number of elements transferred
- Throws:
UnsupportedOperationException
- if addition of elements is not supported by the specified collectionClassCastException
- if the class of an element of this queue prevents it from being added to the specified collectionNullPointerException
- if the specified collection is nullIllegalArgumentException
- if the specified collection is this queue, or some property of an element of this queue prevents it from being added to the specified collection
-
drainTo
reactor.core.publisher.Mono<Integer> drainTo(Collection<? super V> c)
Removes all available elements from this queue and adds them to the given collection in async mode. This operation may be more efficient than repeatedly polling this queue. A failure encountered while attempting to add elements to collectionc
may result in elements being in neither, either or both collections when the associated exception is thrown. Attempts to drain a queue to itself result inIllegalArgumentException
. Further, the behavior of this operation is undefined if the specified collection is modified while the operation is in progress.- Parameters:
c
- the collection to transfer elements into- Returns:
- the number of elements transferred
- Throws:
UnsupportedOperationException
- if addition of elements is not supported by the specified collectionClassCastException
- if the class of an element of this queue prevents it from being added to the specified collectionNullPointerException
- if the specified collection is nullIllegalArgumentException
- if the specified collection is this queue, or some property of an element of this queue prevents it from being added to the specified collection
-
pollLastAndOfferFirstTo
reactor.core.publisher.Mono<V> pollLastAndOfferFirstTo(String queueName, long timeout, TimeUnit unit)
Retrieves and removes last available tail element of this queue and adds it at the head ofqueueName
, waiting up to the specified wait time if necessary for an element to become available.- Parameters:
queueName
- - names of destination queuetimeout
- how long to wait before giving up, in units ofunit
unit
- aTimeUnit
determining how to interpret thetimeout
parameter- Returns:
- the tail of this queue, or
null
if the specified waiting time elapses before an element is available
-
poll
reactor.core.publisher.Mono<V> poll(long timeout, TimeUnit unit)
Retrieves and removes the head of this queue in async mode, waiting up to the specified wait time if necessary for an element to become available.- Parameters:
timeout
- how long to wait before giving up, in units ofunit
unit
- aTimeUnit
determining how to interpret thetimeout
parameter- Returns:
- the head of this queue, or
null
if the specified waiting time elapses before an element is available
-
takeLastAndOfferFirstTo
reactor.core.publisher.Mono<V> takeLastAndOfferFirstTo(String queueName)
Retrieves and removes last available tail element of any queue and adds it at the head ofqueueName
, waiting if necessary for an element to become available in any of defined queues including queue itself.- Parameters:
queueName
- - names of destination queue- Returns:
- the tail of this queue, or
null
if the specified waiting time elapses before an element is available
-
take
reactor.core.publisher.Mono<V> take()
Retrieves and removes the head of this queue in async mode, waiting if necessary until an element becomes available.- Returns:
- the head of this queue
-
put
reactor.core.publisher.Mono<Void> put(V e)
Inserts the specified element into this queue in async mode, waiting if necessary for space to become available.- Parameters:
e
- the element to add- Returns:
- void
- Throws:
ClassCastException
- if the class of the specified element prevents it from being added to this queueNullPointerException
- if the specified element is nullIllegalArgumentException
- if some property of the specified element prevents it from being added to this queue
-
takeElements
reactor.core.publisher.Flux<V> takeElements()
Retrieves and removes continues stream of elements from the head of this queue. Waits for next element become available.- Returns:
- stream of elements
-
-