Interface DelayedDeliveryTracker

All Superinterfaces:
AutoCloseable
All Known Implementing Classes:
AbstractDelayedDeliveryTracker, BucketDelayedDeliveryTracker, 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.
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
    addMessage(long ledgerId, long entryId, long deliveryAt)
    Add a message to the tracker.
    Clear all delayed messages from the tracker.
    void
    Close the subscription tracker and release all resources.
    long
    The amount of memory used to back the delayed message index.
    long
     
    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.
  • Field Details

  • 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.
    • getBufferMemoryUsage

      long getBufferMemoryUsage()
      The amount of memory used to back the delayed message index.
    • getScheduledMessages

      NavigableSet<Position> 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

      Clear all delayed messages from the tracker.
      Returns:
      CompletableFuture
    • close

      void close()
      Close the subscription tracker and release all resources.
      Specified by:
      close in interface AutoCloseable