public class QueueChannel extends AbstractPollableChannel implements QueueChannelOperations
Message is placed in
a BlockingQueue whose capacity may be specified upon construction.
The capacity must be a positive integer value. For a zero-capacity version
based upon a SynchronousQueue, consider the
RendezvousChannel.AbstractMessageChannel.ChannelInterceptorListloggerINDEFINITE_TIMEOUT| Constructor and Description |
|---|
QueueChannel()
Create a channel with "unbounded" queue capacity.
|
QueueChannel(BlockingQueue<Message<?>> queue)
Create a channel with the specified queue.
|
QueueChannel(int capacity)
Create a channel with the specified queue capacity.
|
| Modifier and Type | Method and Description |
|---|---|
List<Message<?>> |
clear()
Remove all
Messages from this channel. |
protected Message<?> |
doReceive(long timeout)
Subclasses must implement this method.
|
protected boolean |
doSend(Message<?> message,
long timeout)
Subclasses must implement this method.
|
int |
getQueueSize() |
int |
getRemainingCapacity() |
List<Message<?>> |
purge(MessageSelector selector)
Remove any
Messages that are not accepted by the provided selector. |
receive, receiveaddInterceptor, addInterceptor, getChannelInterceptors, getComponentType, getFullChannelName, getInterceptors, onInit, send, send, setConversionService, setDatatypes, setInterceptors, setMessageConverter, setShouldTrackafterPropertiesSet, getApplicationContextId, getBeanFactory, getComponentName, getConversionService, getIntegrationProperties, getIntegrationProperty, getMessageBuilderFactory, getTaskScheduler, setApplicationContext, setBeanFactory, setBeanName, setComponentName, setMessageBuilderFactory, setTaskScheduler, toStringclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitsend, sendgetComponentNamepublic QueueChannel(BlockingQueue<Message<?>> queue)
queue - The queue.public QueueChannel(int capacity)
capacity - The capacity.public QueueChannel()
Integer.MAX_VALUE. Note that a bounded queue is recommended, since an
unbounded queue may lead to OutOfMemoryErrors.protected boolean doSend(Message<?> message, long timeout)
AbstractMessageChanneldoSend in class AbstractMessageChannelmessage - The message.timeout - The timeout.protected Message<?> doReceive(long timeout)
AbstractPollableChanneldoReceive in class AbstractPollableChanneltimeout - The timeout.public List<Message<?>> clear()
QueueChannelOperationsMessages from this channel.clear in interface QueueChannelOperationspublic List<Message<?>> purge(MessageSelector selector)
QueueChannelOperationsMessages that are not accepted by the provided selector.purge in interface QueueChannelOperationsselector - The message selector.public int getQueueSize()
getQueueSize in interface QueueChannelOperationsMessages in this channel.public int getRemainingCapacity()
getRemainingCapacity in interface QueueChannelOperations