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>
A
RabbitListenerContainerFactory
implementation to build a regular DirectMessageListenerContainer
.- Since:
- 2.0
- Author:
- Gary Russell, Sud Ramasamy
-
Field Summary
Fields inherited from class org.springframework.amqp.rabbit.config.AbstractRabbitListenerContainerFactory
counter, logger
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected DirectMessageListenerContainer
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, setAcknowledgeMode, setAfterReceivePostProcessors, setApplicationEventPublisher, setAutoStartup, setBatchingStrategy, setBatchListener, setChannelTransacted, setConnectionFactory, setConsumerTagStrategy, setContainerCustomizer, setDeBatchingEnabled, setErrorHandler, setFailedDeclarationRetryInterval, setGlobalQos, setIdleEventInterval, setMessageAckListener, setMessageConverter, setMismatchedQueuesFatal, setMissingQueuesFatal, setObservationConvention, setPhase, setPrefetchCount, setRecoveryBackOff, setRecoveryInterval, setTaskExecutor, setTransactionManager
Methods inherited from class org.springframework.amqp.rabbit.config.BaseRabbitListenerContainerFactory
applyCommonOverrides, getAdviceChain, getApplicationContext, getDefaultRequeueRejected, getMicrometerEnabled, getObservationEnabled, setAdviceChain, setApplicationContext, setBeforeSendReplyPostProcessors, setDefaultRequeueRejected, setMicrometerEnabled, setObservationEnabled, setReplyPostProcessorProvider, 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.context.ApplicationContextAware
setApplicationContext
Methods inherited from interface org.springframework.amqp.rabbit.listener.RabbitListenerContainerFactory
createListenerContainer
-
Constructor Details
-
DirectRabbitListenerContainerFactory
public DirectRabbitListenerContainerFactory()
-
-
Method Details
-
setTaskScheduler
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
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
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
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:
-
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.
-