Class 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.

    • Constructor Detail

      • RqueueListenerBaseConfig

        public RqueueListenerBaseConfig()
    • 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 factory
        versionKey - Rqueue db version key
        dbVersion - database version
        Returns:
        RedisConnectionFactory object.
      • 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)
      • 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
      • rqueueViewResolver

        @Bean
        public org.jtwig.spring.JtwigViewResolver rqueueViewResolver()