Package org.apache.pulsar.client.impl
Class PersistentAcknowledgmentsGroupingTracker
- java.lang.Object
-
- org.apache.pulsar.client.impl.PersistentAcknowledgmentsGroupingTracker
-
- All Implemented Interfaces:
java.lang.AutoCloseable,AcknowledgmentsGroupingTracker
public class PersistentAcknowledgmentsGroupingTracker extends java.lang.Object implements AcknowledgmentsGroupingTracker
Group the acknowledgements for a certain time and then sends them out in a single protobuf command.
-
-
Constructor Summary
Constructors Constructor Description PersistentAcknowledgmentsGroupingTracker(ConsumerImpl<?> consumer, ConsumerConfigurationData<?> conf, io.netty.channel.EventLoopGroup eventLoopGroup)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.util.concurrent.CompletableFuture<java.lang.Void>addAcknowledgment(MessageIdImpl msgId, org.apache.pulsar.common.api.proto.CommandAck.AckType ackType, java.util.Map<java.lang.String,java.lang.Long> properties)java.util.concurrent.CompletableFuture<java.lang.Void>addListAcknowledgment(java.util.List<org.apache.pulsar.client.api.MessageId> messageIds, org.apache.pulsar.common.api.proto.CommandAck.AckType ackType, java.util.Map<java.lang.String,java.lang.Long> properties)voidclose()voidflush()Flush all the pending acks and send them to the broker.voidflushAndClean()booleanisDuplicate(org.apache.pulsar.client.api.MessageId messageId)Since the ack are delayed, we need to do some best-effort duplicate check to discard messages that are being resent after a disconnection and for which the user has already sent an acknowledgement.
-
-
-
Constructor Detail
-
PersistentAcknowledgmentsGroupingTracker
public PersistentAcknowledgmentsGroupingTracker(ConsumerImpl<?> consumer, ConsumerConfigurationData<?> conf, io.netty.channel.EventLoopGroup eventLoopGroup)
-
-
Method Detail
-
isDuplicate
public boolean isDuplicate(org.apache.pulsar.client.api.MessageId messageId)
Since the ack are delayed, we need to do some best-effort duplicate check to discard messages that are being resent after a disconnection and for which the user has already sent an acknowledgement.- Specified by:
isDuplicatein interfaceAcknowledgmentsGroupingTracker
-
addListAcknowledgment
public java.util.concurrent.CompletableFuture<java.lang.Void> addListAcknowledgment(java.util.List<org.apache.pulsar.client.api.MessageId> messageIds, org.apache.pulsar.common.api.proto.CommandAck.AckType ackType, java.util.Map<java.lang.String,java.lang.Long> properties)- Specified by:
addListAcknowledgmentin interfaceAcknowledgmentsGroupingTracker
-
addAcknowledgment
public java.util.concurrent.CompletableFuture<java.lang.Void> addAcknowledgment(MessageIdImpl msgId, org.apache.pulsar.common.api.proto.CommandAck.AckType ackType, java.util.Map<java.lang.String,java.lang.Long> properties)
- Specified by:
addAcknowledgmentin interfaceAcknowledgmentsGroupingTracker
-
flush
public void flush()
Flush all the pending acks and send them to the broker.- Specified by:
flushin interfaceAcknowledgmentsGroupingTracker
-
flushAndClean
public void flushAndClean()
- Specified by:
flushAndCleanin interfaceAcknowledgmentsGroupingTracker
-
close
public void close()
- Specified by:
closein interfaceAcknowledgmentsGroupingTracker- Specified by:
closein interfacejava.lang.AutoCloseable
-
-