Class RqueueMessageSenderImpl
- java.lang.Object
-
- com.github.sonus21.rqueue.core.impl.RqueueMessageSenderImpl
-
- All Implemented Interfaces:
RqueueMessageSender
public class RqueueMessageSenderImpl extends java.lang.Object implements RqueueMessageSender
-
-
Field Summary
Fields Modifier and Type Field Description protected org.springframework.messaging.converter.MessageConverter
messageConverter
protected org.springframework.messaging.MessageHeaders
messageHeaders
protected RqueueMessageTemplate
messageTemplate
protected RqueueConfig
rqueueConfig
protected RqueueMessageMetadataService
rqueueMessageMetadataService
protected RqueueStringDao
rqueueStringDao
-
Constructor Summary
Constructors Constructor Description RqueueMessageSenderImpl(RqueueMessageTemplate messageTemplate, org.springframework.messaging.converter.MessageConverter messageConverter, org.springframework.messaging.MessageHeaders messageHeaders)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected java.lang.Object
deleteAllMessages(QueueDetail queueDetail)
boolean
deleteAllMessages(java.lang.String queueName)
Very dangerous method it will delete all messages in a queueprotected void
enqueue(QueueDetail queueDetail, RqueueMessage rqueueMessage, java.lang.Long delayInMilliSecs)
boolean
enqueue(java.lang.String queueName, java.lang.Object message)
Enqueue a message on given queue without any delay, consume as soon as possible.boolean
enqueueIn(java.lang.String queueName, java.lang.Object message, long delayInMilliSecs)
Schedule a message on the given queue with the provided delay.boolean
enqueueInWithPriority(java.lang.String queueName, java.lang.String priority, java.lang.Object message, long delayInMilliSecs)
Schedule a message on the given queue at the provided time.boolean
enqueueInWithRetry(java.lang.String queueName, java.lang.Object message, int retryCount, long delayInMilliSecs)
Enqueue a task that would be scheduled to run in the specified milli seconds.boolean
enqueueWithPriority(java.lang.String queueName, java.lang.String priority, java.lang.Object message)
Enqueue a message on given queue, that will be consumed as soon as possible.boolean
enqueueWithRetry(java.lang.String queueName, java.lang.Object message, int retryCount)
Enqueue a message on the given queue with the given retry count.java.util.List<java.lang.Object>
getAllMessages(java.lang.String queueName)
Find all messages stored on a given queue, it considers all the messages including delayed and non-delayed.org.springframework.messaging.converter.MessageConverter
getMessageConverter()
Get all registered message converters.java.util.List<org.springframework.messaging.converter.MessageConverter>
getMessageConverters()
Get one or more registered message converters.boolean
moveMessageFromDeadLetterToQueue(java.lang.String deadLetterQueueName, java.lang.String queueName)
A shortcut to the methodRqueueMessageSender.moveMessageFromDeadLetterToQueue(String, String, Integer)
boolean
moveMessageFromDeadLetterToQueue(java.lang.String deadLetterQueueName, java.lang.String queueName, java.lang.Integer maxMessages)
Move messages from Dead Letter queue to the destination queue.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)
protected java.lang.String
pushPeriodicMessage(java.lang.String queueName, java.lang.String messageId, java.lang.Object message, long periodInMilliSeconds)
void
registerQueue(java.lang.String queueName, java.lang.String... priorities)
Use this method to register any queue, that's only used for sending message.protected void
registerQueueInternal(java.lang.String queueName, java.lang.String... priorities)
protected void
storeMessageMetadata(RqueueMessage rqueueMessage, java.lang.Long delayInMillis)
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface com.github.sonus21.rqueue.core.RqueueMessageSender
enqueueAt, enqueueAt, enqueueAt, enqueueAtWithPriority, enqueueAtWithPriority, enqueueAtWithPriority, enqueueIn, enqueueIn, enqueueInWithPriority, enqueueInWithPriority, put, put, put, put
-
-
-
-
Field Detail
-
messageHeaders
protected final org.springframework.messaging.MessageHeaders messageHeaders
-
messageConverter
protected org.springframework.messaging.converter.MessageConverter messageConverter
-
messageTemplate
protected RqueueMessageTemplate messageTemplate
-
rqueueStringDao
@Autowired protected RqueueStringDao rqueueStringDao
-
rqueueConfig
@Autowired protected RqueueConfig rqueueConfig
-
rqueueMessageMetadataService
@Autowired protected RqueueMessageMetadataService rqueueMessageMetadataService
-
-
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 interfaceRqueueMessageSender
- Parameters:
queueName
- on which queue message has to be sendmessage
- 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 interfaceRqueueMessageSender
- Parameters:
queueName
- on which queue message has to be sendmessage
- 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 usingRqueueListener.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 interfaceRqueueMessageSender
- Parameters:
queueName
- on which queue message has to be sendpriority
- the priority name for this messagemessage
- 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 interfaceRqueueMessageSender
- Parameters:
queueName
- on which queue message has to be sendmessage
- 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 interfaceRqueueMessageSender
- Parameters:
queueName
- on which queue message has to be sendmessage
- 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 usingRqueueListener.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 interfaceRqueueMessageSender
- Parameters:
queueName
- on which queue message has to be sendpriority
- the name of the priority levelmessage
- 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 interfaceRqueueMessageSender
- 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 interfaceRqueueMessageSender
- 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 interfaceRqueueMessageSender
- 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 interfaceRqueueMessageSender
- Parameters:
deadLetterQueueName
- dead letter queue namequeueName
- queue namemaxMessages
- number of messages to be moved by default moveConstants.MAX_MESSAGES
messages- Returns:
- success or failure.
-
moveMessageFromDeadLetterToQueue
public boolean moveMessageFromDeadLetterToQueue(java.lang.String deadLetterQueueName, java.lang.String queueName)
Description copied from interface:RqueueMessageSender
A shortcut to the methodRqueueMessageSender.moveMessageFromDeadLetterToQueue(String, String, Integer)
- Specified by:
moveMessageFromDeadLetterToQueue
in interfaceRqueueMessageSender
- Parameters:
deadLetterQueueName
- dead letter queue namequeueName
- queue name- 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 interfaceRqueueMessageSender
- 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 interfaceRqueueMessageSender
- Parameters:
queueName
- name of the queuepriorities
- 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)
-
-