|
Spring AMQP | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.springframework.amqp.rabbit.support.RabbitAccessor
org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer
org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer
public class SimpleMessageListenerContainer
| Nested Class Summary | |
|---|---|
static interface |
SimpleMessageListenerContainer.ContainerDelegate
|
| Nested classes/interfaces inherited from class org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer |
|---|
AbstractMessageListenerContainer.SharedConnectionNotInitializedException |
| Field Summary | |
|---|---|
static long |
DEFAULT_RECEIVE_TIMEOUT
|
| Fields inherited from class org.springframework.amqp.rabbit.support.RabbitAccessor |
|---|
logger |
| Constructor Summary | |
|---|---|
SimpleMessageListenerContainer()
|
|
SimpleMessageListenerContainer(ConnectionFactory connectionFactory)
|
|
| Method Summary | |
|---|---|
protected BlockingQueueConsumer |
createBlockingQueueConsumer(com.rabbitmq.client.Channel channel)
|
protected void |
doInitialize()
Creates the specified number of concurrent consumers, in the form of a Rabbit Channel plus associated MessageConsumer. |
protected void |
doShutdown()
Close the registered invokers. |
protected void |
doStart()
Re-initializes this container's Rabbit message consumers, if not initialized already. |
protected void |
doStop()
Notify all invoker tasks and stop the shared Connection, if any. |
int |
getActiveConsumerCount()
|
protected void |
initializeConsumers()
|
void |
initializeProxy()
|
protected boolean |
isChannelLocallyTransacted(com.rabbitmq.client.Channel channel)
Check whether the given Channel is locally transacted, that is, whether its transaction is managed by this listener container's Channel handling and not by an external transaction coordinator. |
void |
setAdviceChain(org.aopalliance.aop.Advice[] advices)
Public setter for the Advice to apply to listener executions. |
void |
setConcurrentConsumers(int concurrentConsumers)
Specify the number of concurrent consumers to create. |
void |
setPrefetchCount(int prefetchCount)
Tells the broker how many messages to send to each consumer in a single request. |
void |
setReceiveTimeout(long receiveTimeout)
|
void |
setShutdownTimeout(long shutdownTimeout)
The time to wait for workers in milliseconds after the container is stopped, and before the connection is forced closed. |
void |
setTaskExecutor(Executor taskExecutor)
|
void |
setTransactionAttribute(TransactionAttribute transactionAttribute)
|
void |
setTransactionManager(PlatformTransactionManager transactionManager)
|
void |
setTxSize(int txSize)
Tells the container how many messages to process in a single transaction (if the channel is transactional). |
protected boolean |
sharedConnectionEnabled()
Always use a shared Rabbit Connection. |
protected void |
validateConfiguration()
Avoid the possibility of not configuring the CachingConnectionFactory in sync with the number of concurrent consumers. |
| Methods inherited from class org.springframework.amqp.rabbit.support.RabbitAccessor |
|---|
convertRabbitAccessException, createConnection, getChannel, getConnection, getConnectionFactory, getTransactionalResourceHolder, isChannelTransacted, setChannelTransacted, setConnectionFactory |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
public static final long DEFAULT_RECEIVE_TIMEOUT
| Constructor Detail |
|---|
public SimpleMessageListenerContainer()
public SimpleMessageListenerContainer(ConnectionFactory connectionFactory)
| Method Detail |
|---|
public void setAdviceChain(org.aopalliance.aop.Advice[] advices)
Public setter for the Advice to apply to listener executions. If txSize>1 then
multiple listener executions will all be wrapped in the same advice up to that limit.
If a transactionManager is provided as well, then
separate advice is created for the transaction and applied first in the chain. In that case the advice chain
provided here should not contain a transaction interceptor (otherwise two transactions would be be applied).
advices - the advice chain to setpublic void setConcurrentConsumers(int concurrentConsumers)
Raising the number of concurrent consumers is recommended in order to scale the consumption of messages coming in from a queue. However, note that any ordering guarantees are lost once multiple consumers are registered. In general, stick with 1 consumer for low-volume queues.
public void setReceiveTimeout(long receiveTimeout)
public void setShutdownTimeout(long shutdownTimeout)
shutdownTimeout - the shutdown timeout to setpublic void setTaskExecutor(Executor taskExecutor)
public void setPrefetchCount(int prefetchCount)
the transaction size.
prefetchCount - the prefetch countpublic void setTxSize(int txSize)
the prefetch count.
prefetchCount - the prefetch countpublic void setTransactionManager(PlatformTransactionManager transactionManager)
public void setTransactionAttribute(TransactionAttribute transactionAttribute)
transactionAttribute - the transaction attribute to setprotected void validateConfiguration()
validateConfiguration in class AbstractMessageListenerContainerpublic void initializeProxy()
protected final boolean sharedConnectionEnabled()
sharedConnectionEnabled in class AbstractMessageListenerContainerAbstractMessageListenerContainer.getSharedConnection()
protected void doInitialize()
throws Exception
doInitialize in class AbstractMessageListenerContainerException
AbstractMessageListenerContainer.SharedConnectionNotInitializedExceptionAbstractMessageListenerContainer.getSharedConnection()public int getActiveConsumerCount()
protected void doStart()
throws Exception
doStart in class AbstractMessageListenerContainerException
AbstractMessageListenerContainer.SharedConnectionNotInitializedException - if thrown by Rabbit API methodsAbstractMessageListenerContainer.establishSharedConnection()protected void doStop()
AbstractMessageListenerContainer
doStop in class AbstractMessageListenerContainerAbstractMessageListenerContainer.stopSharedConnection()protected void doShutdown()
AbstractMessageListenerContainerSubclasses need to implement this method for their specific invoker management process.
A shared Rabbit Connection, if any, will automatically be closed afterwards.
doShutdown in class AbstractMessageListenerContainerAbstractMessageListenerContainer.shutdown()
protected void initializeConsumers()
throws IOException
IOExceptionprotected boolean isChannelLocallyTransacted(com.rabbitmq.client.Channel channel)
AbstractMessageListenerContainerNote:This method is about finding out whether the Channel's transaction is local or externally coordinated.
isChannelLocallyTransacted in class AbstractMessageListenerContainerchannel - the Channel to check
RabbitAccessor.isChannelTransacted()protected BlockingQueueConsumer createBlockingQueueConsumer(com.rabbitmq.client.Channel channel)
|
Spring AMQP | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||