Class QueuePollingOptimizer.SimpleQueuePollingOptimizer
java.lang.Object
dk.cloudcreate.essentials.components.foundation.messaging.queue.QueuePollingOptimizer.SimpleQueuePollingOptimizer
- All Implemented Interfaces:
DurableQueueConsumerNotifications,QueuePollingOptimizer
- Enclosing interface:
- QueuePollingOptimizer
public static class QueuePollingOptimizer.SimpleQueuePollingOptimizer
extends Object
implements QueuePollingOptimizer
The
QueuePollingOptimizer.SimpleQueuePollingOptimizer supports extending the polling sleep time (i.e. the time between calls to
DurableQueues.getNextMessageReadyForDelivery(GetNextMessageReadyForDelivery)) up until a given threshold.-
Nested Class Summary
Nested classes/interfaces inherited from interface dk.cloudcreate.essentials.components.foundation.messaging.queue.QueuePollingOptimizer
QueuePollingOptimizer.SimpleQueuePollingOptimizer -
Constructor Summary
ConstructorsConstructorDescriptionSimpleQueuePollingOptimizer(ConsumeFromQueue consumeFromQueue, long delayIncrementMs, long maxDelayMs) Create a newQueuePollingOptimizer.SimpleQueuePollingOptimizer -
Method Summary
Modifier and TypeMethodDescriptionvoidmessageAdded(QueuedMessage queuedMessage) Notification from theDurableQueuesimplementation that a new message has been added to the Queue that the givenDurableQueueConsumeris consuming messages from
Note: A consumer still needs to useDurableQueues.getNextMessageReadyForDelivery(GetNextMessageReadyForDelivery)to ensure proper message locking of messages that they are processingvoidqueuePollingReturnedMessage(QueuedMessage queuedMessage) voidbooleantoString()
-
Constructor Details
-
SimpleQueuePollingOptimizer
public SimpleQueuePollingOptimizer(ConsumeFromQueue consumeFromQueue, long delayIncrementMs, long maxDelayMs) Create a newQueuePollingOptimizer.SimpleQueuePollingOptimizer- Parameters:
consumeFromQueue- theConsumeFromQueuecommanddelayIncrementMs- when everQueuePollingOptimizer.queuePollingReturnedNoMessages()is called the delay between calls toDurableQueues.getNextMessageReadyForDelivery(GetNextMessageReadyForDelivery)will be increased bydelayIncrementMs
IfDurableQueueConsumerNotifications.messageAdded(QueuedMessage)orQueuePollingOptimizer.queuePollingReturnedMessage(QueuedMessage)all called, then the delay between calls toDurableQueues.getNextMessageReadyForDelivery(GetNextMessageReadyForDelivery)is reset back toConsumeFromQueue.getPollingInterval()maxDelayMs- The overall delay between calls toDurableQueues.getNextMessageReadyForDelivery(GetNextMessageReadyForDelivery)cannot exceed this value
-
-
Method Details
-
queuePollingReturnedNoMessages
public void queuePollingReturnedNoMessages()- Specified by:
queuePollingReturnedNoMessagesin interfaceQueuePollingOptimizer
-
queuePollingReturnedMessage
- Specified by:
queuePollingReturnedMessagein interfaceQueuePollingOptimizer
-
shouldSkipPolling
public boolean shouldSkipPolling()- Specified by:
shouldSkipPollingin interfaceQueuePollingOptimizer
-
messageAdded
Description copied from interface:DurableQueueConsumerNotificationsNotification from theDurableQueuesimplementation that a new message has been added to the Queue that the givenDurableQueueConsumeris consuming messages from
Note: A consumer still needs to useDurableQueues.getNextMessageReadyForDelivery(GetNextMessageReadyForDelivery)to ensure proper message locking of messages that they are processing- Specified by:
messageAddedin interfaceDurableQueueConsumerNotifications- Parameters:
queuedMessage- the message added
-
toString
-