Package org.apache.pulsar.broker.delayed
Interface DelayedDeliveryTracker
- All Superinterfaces:
AutoCloseable
- All Known Implementing Classes:
InMemoryDelayedDeliveryTracker
Represent the tracker for the delayed delivery of messages for a particular subscription.
Note: this interface is still being refined and some breaking changes might be introduced.
-
Method Summary
Modifier and TypeMethodDescriptionbooleanaddMessage(long ledgerId, long entryId, long deliveryAt) Add a message to the tracker.voidclear()Clear all delayed messages from the tracker.voidclose()Close the subscription tracker and release all resources.longSet<org.apache.bookkeeper.mledger.impl.PositionImpl>getScheduledMessages(int maxMessages) Get a set of position of messages that have already reached the delivery time.booleanReturn true if there's at least a message that is scheduled to be delivered already.voidresetTickTime(long tickTime) Reset tick time use zk policies cache.booleanTells whether the dispatcher should pause any message deliveries, until the DelayedDeliveryTracker has more messages available.
-
Method Details
-
addMessage
boolean addMessage(long ledgerId, long entryId, long deliveryAt) Add a message to the tracker.- Parameters:
ledgerId- the ledgerIdentryId- the entryIddeliveryAt- the absolute timestamp at which the message should be tracked- Returns:
- true if the message was added to the tracker or false if it should be delivered immediately
-
hasMessageAvailable
boolean hasMessageAvailable()Return true if there's at least a message that is scheduled to be delivered already. -
getNumberOfDelayedMessages
long getNumberOfDelayedMessages()- Returns:
- the number of delayed messages being tracked.
-
getScheduledMessages
Get a set of position of messages that have already reached the delivery time. -
shouldPauseAllDeliveries
boolean shouldPauseAllDeliveries()Tells whether the dispatcher should pause any message deliveries, until the DelayedDeliveryTracker has more messages available. -
resetTickTime
void resetTickTime(long tickTime) Reset tick time use zk policies cache.- Parameters:
tickTime- The tick time for when retrying on delayed delivery messages
-
clear
void clear()Clear all delayed messages from the tracker. -
close
void close()Close the subscription tracker and release all resources.- Specified by:
closein interfaceAutoCloseable
-