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
TheQueuePollingOptimizer.SimpleQueuePollingOptimizersupports extending the polling sleep time (i.e. the time between calls toDurableQueues.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
Constructors Constructor Description SimpleQueuePollingOptimizer(ConsumeFromQueue consumeFromQueue, long delayIncrementMs, long maxDelayMs)Create a newQueuePollingOptimizer.SimpleQueuePollingOptimizer
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidmessageAdded(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)voidqueuePollingReturnedNoMessages()booleanshouldSkipPolling()StringtoString()
-
-
-
Constructor Detail
-
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 Detail
-
queuePollingReturnedNoMessages
public void queuePollingReturnedNoMessages()
- Specified by:
queuePollingReturnedNoMessagesin interfaceQueuePollingOptimizer
-
queuePollingReturnedMessage
public void queuePollingReturnedMessage(QueuedMessage queuedMessage)
- Specified by:
queuePollingReturnedMessagein interfaceQueuePollingOptimizer
-
shouldSkipPolling
public boolean shouldSkipPolling()
- Specified by:
shouldSkipPollingin interfaceQueuePollingOptimizer
-
messageAdded
public void messageAdded(QueuedMessage queuedMessage)
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
-
-