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:
org.springframework.beans.factory.Aware,org.springframework.beans.factory.BeanClassLoaderAware,org.springframework.beans.factory.BeanFactoryAware,org.springframework.beans.factory.BeanNameAware,org.springframework.beans.factory.DisposableBean,org.springframework.beans.factory.InitializingBean,org.springframework.beans.factory.SmartInitializingSingleton,org.springframework.context.ApplicationContextAware,org.springframework.context.ApplicationEventPublisherAware,org.springframework.context.Lifecycle,org.springframework.context.Phased,org.springframework.context.SmartLifecycle,org.springframework.integration.context.ExpressionCapable,org.springframework.integration.core.MessageProducer,org.springframework.integration.IntegrationPattern,org.springframework.integration.support.context.NamedComponent,org.springframework.integration.support.management.ManageableLifecycle,org.springframework.integration.support.management.ManageableSmartLifecycle,org.springframework.integration.support.management.TrackableComponent
@ManagedResource
@IntegrationManagedResource
public class RedisQueueMessageDrivenEndpoint
extends org.springframework.integration.endpoint.MessageProducerSupport
implements org.springframework.context.ApplicationEventPublisherAware, org.springframework.beans.factory.BeanClassLoaderAware
- Since:
- 3.0
-
Field Summary
Fields Modifier and Type Field Description static longDEFAULT_RECEIVE_TIMEOUTstatic longDEFAULT_RECOVERY_INTERVALFields inherited from class org.springframework.integration.endpoint.AbstractEndpoint
lifecycleCondition, lifecycleLock -
Constructor Summary
Constructors Constructor Description RedisQueueMessageDrivenEndpoint(java.lang.String queueName, org.springframework.data.redis.connection.RedisConnectionFactory connectionFactory) -
Method Summary
Modifier and Type Method Description voidclearQueue()Clear the Redis Queue specified byboundListOperations.protected voiddoStart()protected voiddoStop()protected voiddoStop(java.lang.Runnable callback)java.lang.StringgetComponentType()longgetQueueSize()Returns the size of the Queue specified byboundListOperations.booleanisListening()protected voidonInit()voidsetApplicationEventPublisher(org.springframework.context.ApplicationEventPublisher applicationEventPublisher)voidsetBeanClassLoader(java.lang.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(org.springframework.data.redis.serializer.RedisSerializer<?> serializer)voidsetTaskExecutor(java.util.concurrent.Executor taskExecutor)Methods inherited from class org.springframework.integration.endpoint.MessageProducerSupport
afterSingletonsInstantiated, buildErrorMessage, getErrorChannel, getErrorMessageAttributes, getIntegrationPatternType, getMessagingTemplate, getOutputChannel, sendErrorMessageIfNecessary, sendMessage, setErrorChannel, setErrorChannelName, setErrorMessageStrategy, 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, getComponentName, getConversionService, getExpression, getIntegrationProperties, getIntegrationProperty, getMessageBuilderFactory, getTaskScheduler, isInitialized, setApplicationContext, setBeanFactory, setBeanName, setChannelResolver, setComponentName, setConversionService, setMessageBuilderFactory, setPrimaryExpression, setTaskScheduler, toString
-
Field Details
-
DEFAULT_RECEIVE_TIMEOUT
public static final long DEFAULT_RECEIVE_TIMEOUT- See Also:
- Constant Field Values
-
DEFAULT_RECOVERY_INTERVAL
public static final long DEFAULT_RECOVERY_INTERVAL- See Also:
- Constant Field Values
-
-
Constructor Details
-
RedisQueueMessageDrivenEndpoint
public RedisQueueMessageDrivenEndpoint(java.lang.String queueName, org.springframework.data.redis.connection.RedisConnectionFactory connectionFactory)- Parameters:
queueName- Must not be an empty StringconnectionFactory- Must not be null
-
-
Method Details
-
setApplicationEventPublisher
public void setApplicationEventPublisher(org.springframework.context.ApplicationEventPublisher applicationEventPublisher)- Specified by:
setApplicationEventPublisherin interfaceorg.springframework.context.ApplicationEventPublisherAware
-
setBeanClassLoader
public void setBeanClassLoader(java.lang.ClassLoader beanClassLoader)- Specified by:
setBeanClassLoaderin interfaceorg.springframework.beans.factory.BeanClassLoaderAware
-
setSerializer
public void setSerializer(org.springframework.data.redis.serializer.RedisSerializer<?> serializer) -
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
public void setTaskExecutor(java.util.concurrent.Executor taskExecutor) -
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()- Overrides:
onInitin classorg.springframework.integration.endpoint.MessageProducerSupport
-
getComponentType
public java.lang.String getComponentType()- Specified by:
getComponentTypein interfaceorg.springframework.integration.support.context.NamedComponent- Overrides:
getComponentTypein classorg.springframework.integration.context.IntegrationObjectSupport
-
doStart
protected void doStart()- Overrides:
doStartin classorg.springframework.integration.endpoint.MessageProducerSupport
-
doStop
protected void doStop(java.lang.Runnable callback)- Overrides:
doStopin classorg.springframework.integration.endpoint.AbstractEndpoint
-
doStop
protected void doStop()- Overrides:
doStopin classorg.springframework.integration.endpoint.MessageProducerSupport
-
isListening
public boolean isListening() -
getQueueSize
@ManagedMetric public long 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
@ManagedOperation public void clearQueue()Clear the Redis Queue specified byboundListOperations.
-