Interface DelayedDeliveryTracker

  • All Superinterfaces:
    java.lang.AutoCloseable
    All Known Implementing Classes:
    InMemoryDelayedDeliveryTracker

    @Beta
    public interface DelayedDeliveryTracker
    extends java.lang.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

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      boolean addMessage​(long ledgerId, long entryId, long deliveryAt)
      Add a message to the tracker.
      void clear()
      Clear all delayed messages from the tracker.
      void close()
      Close the subscription tracker and release all resources.
      long getNumberOfDelayedMessages()  
      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.
      boolean hasMessageAvailable()
      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 shouldPauseAllDeliveries()
      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 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

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