Class RqueueMessageEnqueuerImpl
- java.lang.Object
-
- com.github.sonus21.rqueue.core.impl.RqueueMessageEnqueuerImpl
-
- All Implemented Interfaces:
RqueueMessageEnqueuer
public class RqueueMessageEnqueuerImpl extends java.lang.Object implements RqueueMessageEnqueuer
-
-
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 RqueueMessageEnqueuerImpl(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)
protected void
enqueue(QueueDetail queueDetail, RqueueMessage rqueueMessage, java.lang.Long delayInMilliSecs)
java.lang.String
enqueue(java.lang.String queueName, java.lang.Object message)
Enqueue a message on given queue without any delay, consume as soon as possible.boolean
enqueue(java.lang.String queueName, java.lang.String messageId, java.lang.Object message)
Enqueue a message on given queue without any delay, consume as soon as possible.java.lang.String
enqueueIn(java.lang.String queueName, java.lang.Object message, long delayInMilliSecs)
Schedule a message on the given queue with the provided delay.boolean
enqueueIn(java.lang.String queueName, java.lang.String messageId, java.lang.Object message, long delayInMilliSecs)
Schedule a message on the given queue with the provided delay.java.lang.String
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
enqueueInWithRetry(java.lang.String queueName, java.lang.String messageId, java.lang.Object message, int retryCount, long delayInMilliSecs)
Enqueue a task that would be scheduled to run in the specified milli seconds.java.lang.String
enqueuePeriodic(java.lang.String queueName, java.lang.Object message, long period)
Enqueue a message on given queue that will be running after a given period.boolean
enqueuePeriodic(java.lang.String queueName, java.lang.String messageId, java.lang.Object message, long period)
Enqueue a message on given queue that will be running after a given period.boolean
enqueueUnique(java.lang.String queueName, java.lang.String messageId, java.lang.Object message)
Enqueue unique message on a given queue without any delay, consume as soon as possible.boolean
enqueueUniqueIn(java.lang.String queueName, java.lang.String messageId, java.lang.Object message, long delayInMillisecond)
Enqueue a message on given queue with delay, consume as soon as the delayed is expired.java.lang.String
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
enqueueWithPriority(java.lang.String queueName, java.lang.String priority, java.lang.String messageId, java.lang.Object message)
Enqueue a message on given queue, that will be consumed as soon as possible.java.lang.String
enqueueWithRetry(java.lang.String queueName, java.lang.Object message, int retryCount)
Enqueue a message on the given queue with the given retry count.boolean
enqueueWithRetry(java.lang.String queueName, java.lang.String messageId, java.lang.Object message, int retryCount)
Enqueue a message on the given queue with the given retry count.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)
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.RqueueMessageEnqueuer
enqueueAt, enqueueAt, enqueueAt, enqueueAt, enqueueAt, enqueueAt, enqueueAtWithPriority, enqueueAtWithPriority, enqueueAtWithPriority, enqueueAtWithPriority, enqueueAtWithPriority, enqueueAtWithPriority, enqueueIn, enqueueIn, enqueueIn, enqueueIn, enqueueInWithPriority, enqueueInWithPriority, enqueueInWithPriority, enqueueInWithPriority, enqueueInWithPriority, enqueueInWithPriority, enqueuePeriodic, enqueuePeriodic, enqueuePeriodic, enqueuePeriodic, enqueueUniqueAt, enqueueUniqueAtWithPriority, enqueueUniqueInWithPriority, enqueueUniqueWithPriority
-
-
-
-
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
-
RqueueMessageEnqueuerImpl
public RqueueMessageEnqueuerImpl(RqueueMessageTemplate messageTemplate, org.springframework.messaging.converter.MessageConverter messageConverter, org.springframework.messaging.MessageHeaders messageHeaders)
-
-
Method Detail
-
enqueue
public java.lang.String enqueue(java.lang.String queueName, java.lang.Object message)
Description copied from interface:RqueueMessageEnqueuer
Enqueue a message on given queue without any delay, consume as soon as possible.- Specified by:
enqueue
in interfaceRqueueMessageEnqueuer
- Parameters:
queueName
- on which queue message has to be sendmessage
- message object it could be any arbitrary object.- Returns:
- message id on successful enqueue otherwise null.
-
enqueue
public boolean enqueue(java.lang.String queueName, java.lang.String messageId, java.lang.Object message)
Description copied from interface:RqueueMessageEnqueuer
Enqueue a message on given queue without any delay, consume as soon as possible.- Specified by:
enqueue
in interfaceRqueueMessageEnqueuer
- Parameters:
queueName
- on which queue message has to be sendmessageId
- message idmessage
- message object it could be any arbitrary object.- Returns:
- message was enqueue successfully or failed.
-
enqueueUnique
public boolean enqueueUnique(java.lang.String queueName, java.lang.String messageId, java.lang.Object message)
Description copied from interface:RqueueMessageEnqueuer
Enqueue unique message on a given queue without any delay, consume as soon as possible.- Specified by:
enqueueUnique
in interfaceRqueueMessageEnqueuer
- Parameters:
queueName
- on which queue message has to be sendmessageId
- the message id for uniquenessmessage
- message object it could be any arbitrary object.- Returns:
- message id on successful enqueue otherwise null.
-
enqueueWithRetry
public java.lang.String enqueueWithRetry(java.lang.String queueName, java.lang.Object message, int retryCount)
Description copied from interface:RqueueMessageEnqueuer
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 interfaceRqueueMessageEnqueuer
- 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 id on successful enqueue otherwise null.
-
enqueueWithRetry
public boolean enqueueWithRetry(java.lang.String queueName, java.lang.String messageId, java.lang.Object message, int retryCount)
Description copied from interface:RqueueMessageEnqueuer
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 interfaceRqueueMessageEnqueuer
- Parameters:
queueName
- on which queue message has to be sendmessageId
- message id for this message.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 usingRqueueListener.numRetries()
- Returns:
- message was enqueue successfully or failed.
-
enqueueWithPriority
public java.lang.String enqueueWithPriority(java.lang.String queueName, java.lang.String priority, java.lang.Object message)
Description copied from interface:RqueueMessageEnqueuer
Enqueue a message on given queue, that will be consumed as soon as possible.- Specified by:
enqueueWithPriority
in interfaceRqueueMessageEnqueuer
- Parameters:
queueName
- on which queue message has to be sendpriority
- the priority for this message, like high, low, medium etcmessage
- message object it could be any arbitrary object.- Returns:
- message id on successful enqueue otherwise null.
-
enqueueWithPriority
public boolean enqueueWithPriority(java.lang.String queueName, java.lang.String priority, java.lang.String messageId, java.lang.Object message)
Description copied from interface:RqueueMessageEnqueuer
Enqueue a message on given queue, that will be consumed as soon as possible.- Specified by:
enqueueWithPriority
in interfaceRqueueMessageEnqueuer
- Parameters:
queueName
- on which queue message has to be sendpriority
- the priority for this message, like high, low, medium etcmessageId
- the message id for this messagemessage
- message object it could be any arbitrary object.- Returns:
- message was enqueued successfully or not.
-
enqueueIn
public java.lang.String enqueueIn(java.lang.String queueName, java.lang.Object message, long delayInMilliSecs)
Description copied from interface:RqueueMessageEnqueuer
Schedule a message on the given queue with the provided delay. It will be available to consume as soon as the delay elapse, for example process in 10 seconds- Specified by:
enqueueIn
in interfaceRqueueMessageEnqueuer
- 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 id on successful enqueue otherwise null.
-
enqueueIn
public boolean enqueueIn(java.lang.String queueName, java.lang.String messageId, java.lang.Object message, long delayInMilliSecs)
Description copied from interface:RqueueMessageEnqueuer
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 interfaceRqueueMessageEnqueuer
- Parameters:
queueName
- on which queue message has to be sendmessageId
- the message id, using which this message will be identifiedmessage
- message object it could be any arbitrary object.delayInMilliSecs
- delay in milli seconds- Returns:
- message was enqueue successfully or failed.
-
enqueueUniqueIn
public boolean enqueueUniqueIn(java.lang.String queueName, java.lang.String messageId, java.lang.Object message, long delayInMillisecond)
Description copied from interface:RqueueMessageEnqueuer
Enqueue a message on given queue with delay, consume as soon as the delayed is expired.- Specified by:
enqueueUniqueIn
in interfaceRqueueMessageEnqueuer
- Parameters:
queueName
- on which queue message has to be sendmessageId
- the message id for uniquenessmessage
- message object it could be any arbitrary object.delayInMillisecond
- total execution delay- Returns:
- message id on successful enqueue otherwise null.
-
enqueueInWithRetry
public java.lang.String enqueueInWithRetry(java.lang.String queueName, java.lang.Object message, int retryCount, long delayInMilliSecs)
Description copied from interface:RqueueMessageEnqueuer
Enqueue a task that would be scheduled to run in the specified milli seconds.- Specified by:
enqueueInWithRetry
in interfaceRqueueMessageEnqueuer
- 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 id on successful enqueue otherwise null
-
enqueueInWithRetry
public boolean enqueueInWithRetry(java.lang.String queueName, java.lang.String messageId, java.lang.Object message, int retryCount, long delayInMilliSecs)
Description copied from interface:RqueueMessageEnqueuer
Enqueue a task that would be scheduled to run in the specified milli seconds.- Specified by:
enqueueInWithRetry
in interfaceRqueueMessageEnqueuer
- Parameters:
queueName
- on which queue message has to be sendmessageId
- the message identifiermessage
- 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 enqueue successfully or failed.
-
enqueuePeriodic
public java.lang.String enqueuePeriodic(java.lang.String queueName, java.lang.Object message, long period)
Description copied from interface:RqueueMessageEnqueuer
Enqueue a message on given queue that will be running after a given period. It works like periodic cron that's scheduled at certain interval, for example every 30 seconds.- Specified by:
enqueuePeriodic
in interfaceRqueueMessageEnqueuer
- Parameters:
queueName
- on which queue message has to be sendmessage
- message object it could be any arbitrary object.period
- period of this job in milliseconds.- Returns:
- message id on successful enqueue otherwise null.
-
enqueuePeriodic
public boolean enqueuePeriodic(java.lang.String queueName, java.lang.String messageId, java.lang.Object message, long period)
Description copied from interface:RqueueMessageEnqueuer
Enqueue a message on given queue that will be running after a given period. It works like periodic cron that's scheduled at certain interval, for example every 30 seconds.- Specified by:
enqueuePeriodic
in interfaceRqueueMessageEnqueuer
- Parameters:
queueName
- on which queue message has to be sendmessageId
- message id corresponding to this messagemessage
- message object it could be any arbitrary object.period
- period of this job in milliseconds.- Returns:
- success or failure
-
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)
-
-