Package org.apache.pulsar.broker.delayed
Interface DelayedDeliveryTracker
-
- All Superinterfaces:
java.lang.AutoCloseable
- All Known Implementing Classes:
InMemoryDelayedDeliveryTracker
@Beta public interface DelayedDeliveryTracker extends java.lang.AutoCloseableRepresent 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
All Methods Instance Methods Abstract Methods Modifier and Type Method Description booleanaddMessage(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.longgetNumberOfDelayedMessages()java.util.Set<org.apache.bookkeeper.mledger.impl.PositionImpl>getScheduledMessages(int maxMessages)Get a set of position of messages that have already reached the delivery time.booleanhasMessageAvailable()Return 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.booleanshouldPauseAllDeliveries()Tells whether the dispatcher should pause any message deliveries, until the DelayedDeliveryTracker has more messages available.
-
-
-
Method Detail
-
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
java.util.Set<org.apache.bookkeeper.mledger.impl.PositionImpl> getScheduledMessages(int maxMessages)
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 interfacejava.lang.AutoCloseable
-
-