Interface DelayedDeliveryTracker

All Superinterfaces:
AutoCloseable
All Known Implementing Classes:
InMemoryDelayedDeliveryTracker

@Beta public interface DelayedDeliveryTracker extends AutoCloseable
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 Type
    Method
    Description
    boolean
    addMessage(long ledgerId, long entryId, long deliveryAt)
    Add a message to the tracker.
    void
    Clear all delayed messages from the tracker.
    void
    Close the subscription tracker and release all resources.
    long
     
    Set<org.apache.bookkeeper.mledger.impl.PositionImpl>
    getScheduledMessages(int maxMessages)
    Get a set of position of messages that have already reached the delivery time.
    boolean
    Return true if there's at least a message that is scheduled to be delivered already.
    void
    resetTickTime(long tickTime)
    Reset tick time use zk policies cache.
    boolean
    Tells 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 ledgerId
      entryId - the entryId
      deliveryAt - 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

      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:
      close in interface AutoCloseable