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.ChannelInterceptorList
logger
Constructor and Description |
---|
QueueChannel()
Create a channel with "unbounded" queue capacity.
|
QueueChannel(java.util.concurrent.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 |
---|---|
java.util.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()
Return the current number of queued
Messages in this channel. |
int |
getRemainingCapacity()
Return the remaining capacity of this channel.
|
java.util.List<Message<?>> |
purge(MessageSelector selector)
Remove any
Messages that are not accepted by the provided selector. |
receive, receive
addInterceptor, getComponentType, getFullChannelName, getInterceptors, send, send, setConversionService, setDatatypes, setInterceptors, setShouldTrack
afterPropertiesSet, getApplicationContextId, getBeanFactory, getComponentName, getConversionService, getIntegrationProperties, getIntegrationProperty, getTaskScheduler, onInit, setApplicationContext, setBeanFactory, setBeanName, setComponentName, setTaskScheduler, toString
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
send, send
getComponentName
public QueueChannel(java.util.concurrent.BlockingQueue<Message<?>> queue)
public QueueChannel(int 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)
AbstractMessageChannel
doSend
in class AbstractMessageChannel
protected Message<?> doReceive(long timeout)
AbstractPollableChannel
doReceive
in class AbstractPollableChannel
public java.util.List<Message<?>> clear()
Messages
from this channel.clear
in interface QueueChannelOperations
public java.util.List<Message<?>> purge(MessageSelector selector)
Messages
that are not accepted by the provided selector.purge
in interface QueueChannelOperations
public int getQueueSize()
QueueChannelOperations
Messages
in this channel.getQueueSize
in interface QueueChannelOperations
public int getRemainingCapacity()
QueueChannelOperations
getRemainingCapacity
in interface QueueChannelOperations