Class RedisQueueMessageDrivenEndpoint
java.lang.Object
org.springframework.integration.context.IntegrationObjectSupport
org.springframework.integration.endpoint.AbstractEndpoint
org.springframework.integration.endpoint.MessageProducerSupport
org.springframework.integration.redis.inbound.RedisQueueMessageDrivenEndpoint
- All Implemented Interfaces:
Aware,BeanClassLoaderAware,BeanFactoryAware,BeanNameAware,DisposableBean,InitializingBean,SmartInitializingSingleton,ApplicationContextAware,ApplicationEventPublisherAware,Lifecycle,Phased,SmartLifecycle,ComponentSourceAware,ExpressionCapable,MessageProducer,IntegrationPattern,NamedComponent,IntegrationInboundManagement,IntegrationManagement,ManageableLifecycle,ManageableSmartLifecycle,TrackableComponent
@ManagedResource
@IntegrationManagedResource
public class RedisQueueMessageDrivenEndpoint
extends MessageProducerSupport
implements ApplicationEventPublisherAware, BeanClassLoaderAware
- Since:
- 3.0
- Author:
- Mark Fisher, Gunnar Hillert, Artem Bilan, Gary Russell, Rainer Frey, Matthias Jeschke
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.springframework.integration.support.management.IntegrationManagement
IntegrationManagement.ManagementOverrides -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final longstatic final longFields inherited from class org.springframework.integration.endpoint.AbstractEndpoint
lifecycleLockFields inherited from class org.springframework.integration.context.IntegrationObjectSupport
EXPRESSION_PARSER, loggerFields inherited from interface org.springframework.integration.support.management.IntegrationManagement
METER_PREFIX, RECEIVE_COUNTER_NAME, SEND_TIMER_NAMEFields inherited from interface org.springframework.context.SmartLifecycle
DEFAULT_PHASE -
Constructor Summary
ConstructorsConstructorDescriptionRedisQueueMessageDrivenEndpoint(String queueName, RedisConnectionFactory connectionFactory) -
Method Summary
Modifier and TypeMethodDescriptionvoidClear the Redis Queue specified byboundListOperations.protected voiddoStart()Take no action by default.protected voiddoStop()Take no action by default.protected voidStop the component and invoke callback.Subclasses may implement this method to provide component type information.longReturns the size of the Queue specified byboundListOperations.booleanprotected voidonInit()Subclasses may implement this for initialization logic.voidsetApplicationEventPublisher(ApplicationEventPublisher applicationEventPublisher) voidsetBeanClassLoader(ClassLoader beanClassLoader) voidsetExpectMessage(boolean expectMessage) When data is retrieved from the Redis queue, does the returned data represent just the payload for a Message, or does the data represent a serializedMessage?.voidsetReceiveTimeout(long receiveTimeout) This timeout (milliseconds) is used when retrieving elements from the queue specified byboundListOperations.voidsetRecoveryInterval(long recoveryInterval) voidsetRightPop(boolean rightPop) Specify ifPOPoperation from Redis List should beBRPOPorBLPOP.voidsetSerializer(RedisSerializer<?> serializer) voidsetTaskExecutor(Executor taskExecutor) Methods inherited from class org.springframework.integration.endpoint.MessageProducerSupport
afterSingletonsInstantiated, buildErrorMessage, getErrorChannel, getErrorMessageAttributes, getErrorMessageStrategy, getIntegrationPatternType, getMessagingTemplate, getOutputChannel, getRequiredOutputChannel, isObserved, registerObservationRegistry, sendErrorMessageIfNecessary, sendMessage, setErrorChannel, setErrorChannelName, setErrorMessageStrategy, setObservationConvention, setOutputChannel, setOutputChannelName, setSendTimeout, setShouldTrack, subscribeToPublisherMethods inherited from class org.springframework.integration.endpoint.AbstractEndpoint
destroy, getPhase, getRole, isActive, isAutoStartup, isRunning, setAutoStartup, setPhase, setRole, start, stop, stopMethods inherited from class org.springframework.integration.context.IntegrationObjectSupport
afterPropertiesSet, extractTypeIfPossible, generateId, getApplicationContext, getApplicationContextId, getBeanDescription, getBeanFactory, getBeanName, getChannelResolver, getComponentDescription, getComponentName, getComponentSource, getConversionService, getExpression, getIntegrationProperties, getMessageBuilderFactory, getTaskScheduler, isInitialized, setApplicationContext, setBeanFactory, setBeanName, setChannelResolver, setComponentDescription, setComponentName, setComponentSource, setConversionService, setMessageBuilderFactory, setPrimaryExpression, setTaskScheduler, toStringMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.springframework.integration.support.management.IntegrationManagement
destroy, getManagedName, getManagedType, getOverrides, getThisAs, isLoggingEnabled, registerMetricsCaptor, setLoggingEnabled, setManagedName, setManagedTypeMethods inherited from interface org.springframework.integration.support.context.NamedComponent
getBeanName, getComponentName
-
Field Details
-
DEFAULT_RECEIVE_TIMEOUT
public static final long DEFAULT_RECEIVE_TIMEOUT- See Also:
-
DEFAULT_RECOVERY_INTERVAL
public static final long DEFAULT_RECOVERY_INTERVAL- See Also:
-
-
Constructor Details
-
RedisQueueMessageDrivenEndpoint
- Parameters:
queueName- Must not be an empty StringconnectionFactory- Must not be null
-
-
Method Details
-
setApplicationEventPublisher
- Specified by:
setApplicationEventPublisherin interfaceApplicationEventPublisherAware
-
setBeanClassLoader
- Specified by:
setBeanClassLoaderin interfaceBeanClassLoaderAware
-
setSerializer
-
setExpectMessage
public void setExpectMessage(boolean expectMessage) When data is retrieved from the Redis queue, does the returned data represent just the payload for a Message, or does the data represent a serializedMessage?.expectMessagedefaults to false. This means the retrieved data will be used as the payload for a new Spring Integration Message. Otherwise, the data is deserialized as Spring Integration Message.- Parameters:
expectMessage- Defaults to false
-
setReceiveTimeout
public void setReceiveTimeout(long receiveTimeout) This timeout (milliseconds) is used when retrieving elements from the queue specified byboundListOperations.If the queue does contain elements, the data is retrieved immediately. However, if the queue is empty, the Redis connection is blocked until either an element can be retrieved from the queue or until the specified timeout passes.
A timeout of zero can be used to block indefinitely. If not set explicitly the timeout value will default to
1000See also: https://redis.io/commands/brpop
- Parameters:
receiveTimeout- Must be non-negative. Specified in milliseconds.
-
setTaskExecutor
-
setRecoveryInterval
public void setRecoveryInterval(long recoveryInterval) -
setRightPop
public void setRightPop(boolean rightPop) Specify ifPOPoperation from Redis List should beBRPOPorBLPOP.- Parameters:
rightPop- theBRPOPflag. Defaults totrue.- Since:
- 4.3
-
onInit
protected void onInit()Description copied from class:IntegrationObjectSupportSubclasses may implement this for initialization logic.- Overrides:
onInitin classMessageProducerSupport
-
getComponentType
Description copied from class:IntegrationObjectSupportSubclasses may implement this method to provide component type information.- Specified by:
getComponentTypein interfaceNamedComponent- Overrides:
getComponentTypein classIntegrationObjectSupport
-
doStart
protected void doStart()Description copied from class:MessageProducerSupportTake no action by default. Subclasses may override this if they need lifecycle-managed behavior. Protected by 'lifecycleLock'.- Overrides:
doStartin classMessageProducerSupport
-
doStop
Description copied from class:AbstractEndpointStop the component and invoke callback.- Overrides:
doStopin classAbstractEndpoint- Parameters:
callback- the Runnable to invoke.
-
doStop
protected void doStop()Description copied from class:MessageProducerSupportTake no action by default. Subclasses may override this if they need lifecycle-managed behavior.- Overrides:
doStopin classMessageProducerSupport
-
isListening
public boolean isListening() -
getQueueSize
Returns the size of the Queue specified byboundListOperations. The queue is represented by a Redis list. If the queue does not exist0is returned. See also https://redis.io/commands/llen- Returns:
- Size of the queue. Never negative.
-
clearQueue
Clear the Redis Queue specified byboundListOperations.
-