Package com.github.sonus21.rqueue.config
Class RqueueListenerBaseConfig
- java.lang.Object
-
- com.github.sonus21.rqueue.config.RqueueListenerBaseConfig
-
public abstract class RqueueListenerBaseConfig extends java.lang.Object
This is a base configuration class for Rqueue, that is used in Spring and Spring boot Rqueue libs for configurations. This class creates required beans to work Rqueue library.It internally maintains two types of scheduled tasks for different functionality, for delayed queue messages have to be moved from ZSET to LIST, in other case to at least once message delivery guarantee, messages have to be moved from ZSET to LIST again, we expect very small number of messages in processing queue. Reason being we delete messages once it's consumed, but due to failure in listeners message might not be removed, whereas message in a delayed queue can be very high based on the use case.
-
-
Field Summary
Fields Modifier and Type Field Description static int
MAX_DB_VERSION
protected SimpleRqueueListenerContainerFactory
simpleRqueueListenerContainerFactory
-
Constructor Summary
Constructors Constructor Description RqueueListenerBaseConfig()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description DelayedMessageScheduler
delayedMessageScheduler()
This scheduler is used to pull messages from a delayed queue to their respective queue.protected RqueueMessageTemplate
getMessageTemplate(RqueueConfig rqueueConfig)
Get Rqueue message template either from listener container factory or create new one.ProcessingMessageScheduler
processingMessageScheduler()
This scheduler is used to pull messages from processing queue to their respective queue.RqueueConfig
rqueueConfig(org.springframework.beans.factory.config.ConfigurableBeanFactory beanFactory, java.lang.String versionKey, java.lang.Integer dbVersion)
Create Rqueue configuration bean either from listener container factory or from bean factory.RqueueLockManager
rqueueLockManager(RqueueStringDao rqueueStringDao)
RqueueRedisListenerContainerFactory
rqueueRedisListenerContainerFactory()
org.springframework.data.redis.core.RedisTemplate<java.lang.String,java.lang.Long>
rqueueRedisLongTemplate(RqueueConfig rqueueConfig)
RqueueSchedulerConfig
rqueueSchedulerConfig()
RqueueStringDao
rqueueStringDao(RqueueConfig rqueueConfig)
org.jtwig.spring.JtwigViewResolver
rqueueViewResolver()
RqueueWebConfig
rqueueWebConfig()
RqueueRedisTemplate<java.lang.String>
stringRqueueRedisTemplate(RqueueConfig rqueueConfig)
-
-
-
Field Detail
-
MAX_DB_VERSION
public static final int MAX_DB_VERSION
- See Also:
- Constant Field Values
-
simpleRqueueListenerContainerFactory
@Autowired(required=false) protected final SimpleRqueueListenerContainerFactory simpleRqueueListenerContainerFactory
-
-
Method Detail
-
rqueueConfig
@Bean public RqueueConfig rqueueConfig(org.springframework.beans.factory.config.ConfigurableBeanFactory beanFactory, @Value("${rqueue.version.key:__rq::version}") java.lang.String versionKey, @Value("${rqueue.db.version:}") java.lang.Integer dbVersion)
Create Rqueue configuration bean either from listener container factory or from bean factory. 1st priority is given to container factory. This redis connection factory is used to connect to Database for different ops.- Parameters:
beanFactory
- configurable bean factoryversionKey
- Rqueue db version keydbVersion
- database version- Returns:
RedisConnectionFactory
object.
-
rqueueWebConfig
@Bean public RqueueWebConfig rqueueWebConfig()
-
rqueueSchedulerConfig
@Bean public RqueueSchedulerConfig rqueueSchedulerConfig()
-
getMessageTemplate
protected RqueueMessageTemplate getMessageTemplate(RqueueConfig rqueueConfig)
Get Rqueue message template either from listener container factory or create new one. 1st priority is given to container factory. Message template is used to serialize message and sending message to Redis.- Parameters:
rqueueConfig
- rqueue config object- Returns:
RqueueMessageTemplate
object
-
rqueueRedisLongTemplate
@Bean public org.springframework.data.redis.core.RedisTemplate<java.lang.String,java.lang.Long> rqueueRedisLongTemplate(RqueueConfig rqueueConfig)
-
rqueueRedisListenerContainerFactory
@Bean public RqueueRedisListenerContainerFactory rqueueRedisListenerContainerFactory()
-
delayedMessageScheduler
@Bean public DelayedMessageScheduler delayedMessageScheduler()
This scheduler is used to pull messages from a delayed queue to their respective queue. Internally it moves messages from ZSET to LIST based on the priority and current time.- Returns:
DelayedMessageScheduler
object
-
processingMessageScheduler
@Bean public ProcessingMessageScheduler processingMessageScheduler()
This scheduler is used to pull messages from processing queue to their respective queue. Internally it moves messages from ZSET to LIST based on the priority and current time.- Returns:
ProcessingMessageScheduler
object
-
stringRqueueRedisTemplate
@Bean public RqueueRedisTemplate<java.lang.String> stringRqueueRedisTemplate(RqueueConfig rqueueConfig)
-
rqueueStringDao
@Bean public RqueueStringDao rqueueStringDao(RqueueConfig rqueueConfig)
-
rqueueLockManager
@Bean public RqueueLockManager rqueueLockManager(RqueueStringDao rqueueStringDao)
-
rqueueViewResolver
@Bean public org.jtwig.spring.JtwigViewResolver rqueueViewResolver()
-
-