Class RqueueMessageSenderImpl

    • Field Detail

      • messageHeaders

        protected final org.springframework.messaging.MessageHeaders messageHeaders
      • messageConverter

        protected org.springframework.messaging.converter.MessageConverter messageConverter
      • rqueueConfig

        @Autowired
        protected RqueueConfig rqueueConfig
    • Constructor Detail

      • RqueueMessageSenderImpl

        public RqueueMessageSenderImpl​(RqueueMessageTemplate messageTemplate,
                                       org.springframework.messaging.converter.MessageConverter messageConverter,
                                       org.springframework.messaging.MessageHeaders messageHeaders)
    • Method Detail

      • enqueue

        public boolean enqueue​(java.lang.String queueName,
                               java.lang.Object message)
        Description copied from interface: RqueueMessageSender
        Enqueue a message on given queue without any delay, consume as soon as possible.
        Specified by:
        enqueue in interface RqueueMessageSender
        Parameters:
        queueName - on which queue message has to be send
        message - message object it could be any arbitrary object.
        Returns:
        message was submitted successfully or failed.
      • enqueueWithRetry

        public boolean enqueueWithRetry​(java.lang.String queueName,
                                        java.lang.Object message,
                                        int retryCount)
        Description copied from interface: RqueueMessageSender
        Enqueue a message on the given queue with the given retry count. This message would not be consumed more than the specified time due to failure in underlying systems.
        Specified by:
        enqueueWithRetry in interface RqueueMessageSender
        Parameters:
        queueName - on which queue message has to be send
        message - message object it could be any arbitrary object.
        retryCount - how many times a message would be retried, before it can be discarded or send to dead letter queue configured using RqueueListener.numRetries()
        Returns:
        message was submitted successfully or failed.
      • enqueueWithPriority

        public boolean enqueueWithPriority​(java.lang.String queueName,
                                           java.lang.String priority,
                                           java.lang.Object message)
        Description copied from interface: RqueueMessageSender
        Enqueue a message on given queue, that will be consumed as soon as possible.
        Specified by:
        enqueueWithPriority in interface RqueueMessageSender
        Parameters:
        queueName - on which queue message has to be send
        priority - the priority name for this message
        message - message object it could be any arbitrary object.
        Returns:
        message was submitted successfully or failed.
      • enqueueIn

        public boolean enqueueIn​(java.lang.String queueName,
                                 java.lang.Object message,
                                 long delayInMilliSecs)
        Description copied from interface: RqueueMessageSender
        Schedule a message on the given queue with the provided delay. It will be available to consume as soon as the delay elapse.
        Specified by:
        enqueueIn in interface RqueueMessageSender
        Parameters:
        queueName - on which queue message has to be send
        message - message object it could be any arbitrary object.
        delayInMilliSecs - delay in milli seconds
        Returns:
        message was submitted successfully or failed.
      • enqueueInWithRetry

        public boolean enqueueInWithRetry​(java.lang.String queueName,
                                          java.lang.Object message,
                                          int retryCount,
                                          long delayInMilliSecs)
        Description copied from interface: RqueueMessageSender
        Enqueue a task that would be scheduled to run in the specified milli seconds.
        Specified by:
        enqueueInWithRetry in interface RqueueMessageSender
        Parameters:
        queueName - on which queue message has to be send
        message - message object it could be any arbitrary object.
        retryCount - how many times a message would be retried, before it can be discarded or sent to dead letter queue configured using RqueueListener.numRetries() ()}
        delayInMilliSecs - delay in milli seconds, this message would be only visible to the listener when number of millisecond has elapsed.
        Returns:
        message was submitted successfully or failed.
      • enqueueInWithPriority

        public boolean enqueueInWithPriority​(java.lang.String queueName,
                                             java.lang.String priority,
                                             java.lang.Object message,
                                             long delayInMilliSecs)
        Description copied from interface: RqueueMessageSender
        Schedule a message on the given queue at the provided time. It will be executed as soon as the given delay is elapse.
        Specified by:
        enqueueInWithPriority in interface RqueueMessageSender
        Parameters:
        queueName - on which queue message has to be send
        priority - the name of the priority level
        message - message object it could be any arbitrary object.
        delayInMilliSecs - delay in milli seconds
        Returns:
        message was submitted successfully or failed.
      • getAllMessages

        public java.util.List<java.lang.Object> getAllMessages​(java.lang.String queueName)
        Description copied from interface: RqueueMessageSender
        Find all messages stored on a given queue, it considers all the messages including delayed and non-delayed.
        Specified by:
        getAllMessages in interface RqueueMessageSender
        Parameters:
        queueName - queue name to be query for
        Returns:
        list of messages.
      • getMessageConverter

        public org.springframework.messaging.converter.MessageConverter getMessageConverter()
        Description copied from interface: RqueueMessageSender
        Get all registered message converters.
        Specified by:
        getMessageConverter in interface RqueueMessageSender
        Returns:
        list of message converters.
      • getMessageConverters

        public java.util.List<org.springframework.messaging.converter.MessageConverter> getMessageConverters()
        Description copied from interface: RqueueMessageSender
        Get one or more registered message converters.
        Specified by:
        getMessageConverters in interface RqueueMessageSender
        Returns:
        registered message converters.
      • moveMessageFromDeadLetterToQueue

        public boolean moveMessageFromDeadLetterToQueue​(java.lang.String deadLetterQueueName,
                                                        java.lang.String queueName,
                                                        java.lang.Integer maxMessages)
        Description copied from interface: RqueueMessageSender
        Move messages from Dead Letter queue to the destination queue. This push the messages at the FRONT of destination queue, so that it can be reprocessed as soon as possible.
        Specified by:
        moveMessageFromDeadLetterToQueue in interface RqueueMessageSender
        Parameters:
        deadLetterQueueName - dead letter queue name
        queueName - queue name
        maxMessages - number of messages to be moved by default move Constants.MAX_MESSAGES messages
        Returns:
        success or failure.
      • deleteAllMessages

        public boolean deleteAllMessages​(java.lang.String queueName)
        Description copied from interface: RqueueMessageSender
        Very dangerous method it will delete all messages in a queue
        Specified by:
        deleteAllMessages in interface RqueueMessageSender
        Parameters:
        queueName - queue name
        Returns:
        fail/success
      • registerQueue

        public void registerQueue​(java.lang.String queueName,
                                  java.lang.String... priorities)
        Description copied from interface: RqueueMessageSender
        Use this method to register any queue, that's only used for sending message.
        Specified by:
        registerQueue in interface RqueueMessageSender
        Parameters:
        queueName - name of the queue
        priorities - list of priorities to be used while sending message on this queue.
      • storeMessageMetadata

        protected void storeMessageMetadata​(RqueueMessage rqueueMessage,
                                            java.lang.Long delayInMillis)
      • enqueue

        protected void enqueue​(QueueDetail queueDetail,
                               RqueueMessage rqueueMessage,
                               java.lang.Long delayInMilliSecs)
      • pushMessage

        protected java.lang.String pushMessage​(java.lang.String queueName,
                                               java.lang.String messageId,
                                               java.lang.Object message,
                                               java.lang.Integer retryCount,
                                               java.lang.Long delayInMilliSecs)
      • pushPeriodicMessage

        protected java.lang.String pushPeriodicMessage​(java.lang.String queueName,
                                                       java.lang.String messageId,
                                                       java.lang.Object message,
                                                       long periodInMilliSeconds)
      • deleteAllMessages

        protected java.lang.Object deleteAllMessages​(QueueDetail queueDetail)
      • registerQueueInternal

        protected void registerQueueInternal​(java.lang.String queueName,
                                             java.lang.String... priorities)