Class MessageRedeliveryController

java.lang.Object
org.apache.pulsar.broker.service.persistent.MessageRedeliveryController

@NotThreadSafe public class MessageRedeliveryController extends Object
The MessageRedeliveryController is a non-thread-safe container for maintaining the redelivery messages.
  • Constructor Details

    • MessageRedeliveryController

      public MessageRedeliveryController(boolean allowOutOfOrderDelivery)
    • MessageRedeliveryController

      public MessageRedeliveryController(boolean allowOutOfOrderDelivery, boolean isClassicDispatcher)
  • Method Details

    • add

      public void add(long ledgerId, long entryId)
    • add

      public void add(long ledgerId, long entryId, long stickyKeyHash)
    • remove

      public void remove(long ledgerId, long entryId)
    • getHash

      public Long getHash(long ledgerId, long entryId)
    • removeAllUpTo

      public void removeAllUpTo(long markDeleteLedgerId, long markDeleteEntryId)
    • isEmpty

      public boolean isEmpty()
    • clear

      public void clear()
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • containsStickyKeyHashes

      public boolean containsStickyKeyHashes(Set<Integer> stickyKeyHashes)
    • containsStickyKeyHash

      public boolean containsStickyKeyHash(int stickyKeyHash)
    • getFirstPositionInReplay

      public Optional<Position> getFirstPositionInReplay()
    • getMessagesToReplayNow

      public NavigableSet<Position> getMessagesToReplayNow(int maxMessagesToRead, Predicate<Position> filter)
      Get the messages to replay now.
      Parameters:
      maxMessagesToRead - the max messages to read
      filter - the filter to use to select the messages to replay
      Returns:
      the messages to replay now
    • size

      public int size()
      Get the number of messages registered for replay in the redelivery controller.
      Returns:
      number of messages