Class DirectRabbitListenerContainerFactory
- java.lang.Object
-
- org.springframework.amqp.rabbit.config.BaseRabbitListenerContainerFactory<C>
-
- org.springframework.amqp.rabbit.config.AbstractRabbitListenerContainerFactory<DirectMessageListenerContainer>
-
- org.springframework.amqp.rabbit.config.DirectRabbitListenerContainerFactory
-
- All Implemented Interfaces:
RabbitListenerContainerFactory<DirectMessageListenerContainer>
,Aware
,ApplicationContextAware
,ApplicationEventPublisherAware
public class DirectRabbitListenerContainerFactory extends AbstractRabbitListenerContainerFactory<DirectMessageListenerContainer>
ARabbitListenerContainerFactory
implementation to build a regularDirectMessageListenerContainer
.- Since:
- 2.0
- Author:
- Gary Russell, Sud Ramasamy
-
-
Field Summary
-
Fields inherited from class org.springframework.amqp.rabbit.config.AbstractRabbitListenerContainerFactory
counter, logger
-
-
Constructor Summary
Constructors Constructor Description DirectRabbitListenerContainerFactory()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected DirectMessageListenerContainer
createContainerInstance()
Create an empty container instance.protected void
initializeContainer(DirectMessageListenerContainer instance, RabbitListenerEndpoint endpoint)
Further initialize the specified container.void
setAckTimeout(Long ackTimeout)
An approximate timeout; whenmessagesPerAck
is greater than 1, and this time elapses since the last ack, the pending acks will be sent either when the next message arrives, or a short time later if no additional messages arrive.void
setConsumersPerQueue(Integer consumersPerQueue)
Each queue runs in its own consumer; set this property to create multiple consumers for each queue.void
setMessagesPerAck(Integer messagesPerAck)
Set the number of messages to receive before acknowledging (success).void
setMonitorInterval(long monitorInterval)
Set how often to run a task to check for failed consumers and idle containers.void
setTaskScheduler(TaskScheduler taskScheduler)
Set the task scheduler to use for the task that monitors idle containers and failed consumers.-
Methods inherited from class org.springframework.amqp.rabbit.config.AbstractRabbitListenerContainerFactory
createListenerContainer, getAdviceChain, setAcknowledgeMode, setAdviceChain, setAfterReceivePostProcessors, setApplicationContext, setApplicationEventPublisher, setAutoStartup, setBatchingStrategy, setBatchListener, setChannelTransacted, setConnectionFactory, setConsumerTagStrategy, setContainerCustomizer, setDeBatchingEnabled, setErrorHandler, setFailedDeclarationRetryInterval, setGlobalQos, setIdleEventInterval, setMessageConverter, setMismatchedQueuesFatal, setMissingQueuesFatal, setPhase, setPrefetchCount, setRecoveryBackOff, setRecoveryInterval, setTaskExecutor, setTransactionManager
-
Methods inherited from class org.springframework.amqp.rabbit.config.BaseRabbitListenerContainerFactory
applyCommonOverrides, getDefaultRequeueRejected, setBeforeSendReplyPostProcessors, setDefaultRequeueRejected, setReplyRecoveryCallback, setRetryTemplate
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.springframework.amqp.rabbit.listener.RabbitListenerContainerFactory
createListenerContainer
-
-
-
-
Method Detail
-
setTaskScheduler
public void setTaskScheduler(TaskScheduler taskScheduler)
Set the task scheduler to use for the task that monitors idle containers and failed consumers.- Parameters:
taskScheduler
- the scheduler.
-
setMonitorInterval
public void setMonitorInterval(long monitorInterval)
Set how often to run a task to check for failed consumers and idle containers.- Parameters:
monitorInterval
- the interval; default 10000 but it will be adjusted down to the smallest of this,idleEventInterval
/ 2 (if configured) orfailedDeclarationRetryInterval
.
-
setConsumersPerQueue
public void setConsumersPerQueue(Integer consumersPerQueue)
Each queue runs in its own consumer; set this property to create multiple consumers for each queue. If the container is already running, the number of consumers per queue will be adjusted up or down as necessary.- Parameters:
consumersPerQueue
- the consumers per queue.
-
setMessagesPerAck
public void setMessagesPerAck(Integer messagesPerAck)
Set the number of messages to receive before acknowledging (success). A failed message will short-circuit this counter.- Parameters:
messagesPerAck
- the number of messages.- See Also:
setAckTimeout(Long)
-
setAckTimeout
public void setAckTimeout(Long ackTimeout)
An approximate timeout; whenmessagesPerAck
is greater than 1, and this time elapses since the last ack, the pending acks will be sent either when the next message arrives, or a short time later if no additional messages arrive. In that case, the actual time depends on themonitorInterval
.- Parameters:
ackTimeout
- the timeout in milliseconds (default 20000);- See Also:
setMessagesPerAck(Integer)
-
createContainerInstance
protected DirectMessageListenerContainer createContainerInstance()
Description copied from class:AbstractRabbitListenerContainerFactory
Create an empty container instance.- Specified by:
createContainerInstance
in classAbstractRabbitListenerContainerFactory<DirectMessageListenerContainer>
- Returns:
- the new container instance.
-
initializeContainer
protected void initializeContainer(DirectMessageListenerContainer instance, RabbitListenerEndpoint endpoint)
Description copied from class:AbstractRabbitListenerContainerFactory
Further initialize the specified container.Subclasses can inherit from this method to apply extra configuration if necessary.
- Overrides:
initializeContainer
in classAbstractRabbitListenerContainerFactory<DirectMessageListenerContainer>
- Parameters:
instance
- the container instance to configure.endpoint
- the endpoint.
-
-