Class BucketDelayedDeliveryTracker

java.lang.Object
org.apache.pulsar.broker.delayed.AbstractDelayedDeliveryTracker
org.apache.pulsar.broker.delayed.bucket.BucketDelayedDeliveryTracker
All Implemented Interfaces:
io.netty.util.TimerTask, AutoCloseable, DelayedDeliveryTracker

@ThreadSafe public class BucketDelayedDeliveryTracker extends AbstractDelayedDeliveryTracker
  • Field Details

  • Constructor Details

  • Method Details

    • run

      public void run(io.netty.util.Timeout timeout) throws Exception
      Specified by:
      run in interface io.netty.util.TimerTask
      Overrides:
      run in class AbstractDelayedDeliveryTracker
      Throws:
      Exception
    • addMessage

      public boolean addMessage(long ledgerId, long entryId, long deliverAt)
      Description copied from interface: DelayedDeliveryTracker
      Add a message to the tracker.
      Parameters:
      ledgerId - the ledgerId
      entryId - the entryId
      deliverAt - 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

      public boolean hasMessageAvailable()
      Description copied from interface: DelayedDeliveryTracker
      Return true if there's at least a message that is scheduled to be delivered already.
    • nextDeliveryTime

      protected long nextDeliveryTime()
      Specified by:
      nextDeliveryTime in class AbstractDelayedDeliveryTracker
    • getNumberOfDelayedMessages

      public long getNumberOfDelayedMessages()
      Returns:
      the number of delayed messages being tracked.
    • getBufferMemoryUsage

      public long getBufferMemoryUsage()
      Description copied from interface: DelayedDeliveryTracker
      The amount of memory used to back the delayed message index.
    • getScheduledMessages

      public NavigableSet<Position> getScheduledMessages(int maxMessages)
      Description copied from interface: DelayedDeliveryTracker
      Get a set of position of messages that have already reached the delivery time.
    • shouldPauseAllDeliveries

      public boolean shouldPauseAllDeliveries()
      Description copied from interface: DelayedDeliveryTracker
      Tells whether the dispatcher should pause any message deliveries, until the DelayedDeliveryTracker has more messages available.
    • clear

      public CompletableFuture<Void> clear()
      Description copied from interface: DelayedDeliveryTracker
      Clear all delayed messages from the tracker.
      Returns:
      CompletableFuture
    • close

      public void close()
      Description copied from interface: DelayedDeliveryTracker
      Close the subscription tracker and release all resources.
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface DelayedDeliveryTracker
      Overrides:
      close in class AbstractDelayedDeliveryTracker
    • containsMessage

      public boolean containsMessage(long ledgerId, long entryId)
    • genTopicMetricMap

      public Map<String,org.apache.pulsar.common.policies.data.stats.TopicMetricBean> genTopicMetricMap()