java.io.Closeable, java.lang.AutoCloseable, QueueBase<T>public class DistributedDelayQueue<T> extends java.lang.Object implements java.io.Closeable, QueueBase<T>
A variation of the DistributedPriorityQueue that uses time as the priority. When items are added to the queue, a delay value is given. The item will not be sent to a consumer until the time elapses.
| Modifier and Type | Method | Description |
|---|---|---|
void |
close() |
|
boolean |
flushPuts(long waitTime,
java.util.concurrent.TimeUnit timeUnit) |
Wait until any pending puts are committed
|
int |
getLastMessageCount() |
Return the most recent message count from the queue.
|
org.apache.curator.framework.listen.ListenerContainer<QueuePutListener<T>> |
getPutListenerContainer() |
Return the manager for put listeners
|
void |
put(T item,
long delayUntilEpoch) |
Add an item into the queue.
|
boolean |
put(T item,
long delayUntilEpoch,
int maxWait,
java.util.concurrent.TimeUnit unit) |
Same as
put(Object, long) but allows a maximum wait time if an upper bound was set
via QueueBuilder.maxItems. |
void |
putMulti(MultiItem<T> items,
long delayUntilEpoch) |
Add a set of items with the same priority into the queue.
|
boolean |
putMulti(MultiItem<T> items,
long delayUntilEpoch,
int maxWait,
java.util.concurrent.TimeUnit unit) |
Same as
putMulti(MultiItem, long) but allows a maximum wait time if an upper bound was set
via QueueBuilder.maxItems. |
void |
setErrorMode(ErrorMode newErrorMode) |
Used when the queue is created with a
QueueBuilder.lockPath(String). |
void |
start() |
Start the queue.
|
public void start()
throws java.lang.Exception
public void close()
throws java.io.IOException
close in interface java.lang.AutoCloseableclose in interface java.io.Closeablejava.io.IOExceptionpublic void put(T item, long delayUntilEpoch) throws java.lang.Exception
QueueBuilder.maxItems, this method will
block until there is available space in the queue.item - item to adddelayUntilEpoch - future epoch (milliseconds) when this item will be available to consumersjava.lang.Exception - connection issuespublic boolean put(T item, long delayUntilEpoch, int maxWait, java.util.concurrent.TimeUnit unit) throws java.lang.Exception
put(Object, long) but allows a maximum wait time if an upper bound was set
via QueueBuilder.maxItems.item - item to adddelayUntilEpoch - future epoch (milliseconds) when this item will be available to consumersmaxWait - maximum waitunit - wait unitjava.lang.Exceptionpublic void putMulti(MultiItem<T> items, long delayUntilEpoch) throws java.lang.Exception
QueueBuilder.maxItems, this method will
block until there is available space in the queue.items - items to adddelayUntilEpoch - future epoch (milliseconds) when this item will be available to consumersjava.lang.Exception - connection issuespublic boolean putMulti(MultiItem<T> items, long delayUntilEpoch, int maxWait, java.util.concurrent.TimeUnit unit) throws java.lang.Exception
putMulti(MultiItem, long) but allows a maximum wait time if an upper bound was set
via QueueBuilder.maxItems.items - items to adddelayUntilEpoch - future epoch (milliseconds) when this item will be available to consumersmaxWait - maximum waitunit - wait unitjava.lang.Exceptionpublic void setErrorMode(ErrorMode newErrorMode)
QueueBaseQueueBuilder.lockPath(String). Determines
the behavior when the queue consumer throws an exceptionsetErrorMode in interface QueueBase<T>newErrorMode - the new error mode (the default is ErrorMode.REQUEUEpublic boolean flushPuts(long waitTime,
java.util.concurrent.TimeUnit timeUnit)
throws java.lang.InterruptedException
QueueBasepublic org.apache.curator.framework.listen.ListenerContainer<QueuePutListener<T>> getPutListenerContainer()
getPutListenerContainer in interface QueueBase<T>public int getLastMessageCount()
getLastMessageCount in interface QueueBase<T>Copyright © 2011–2018 The Apache Software Foundation. All rights reserved.