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)
void
close()
void
flush()
Flush all the pending acks and send them to the brokervoid
flushAndClean()
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.
-
-
-
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:
isDuplicate
in 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:
addListAcknowledgment
in 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:
addAcknowledgment
in interfaceAcknowledgmentsGroupingTracker
-
flush
public void flush()
Flush all the pending acks and send them to the broker- Specified by:
flush
in interfaceAcknowledgmentsGroupingTracker
-
flushAndClean
public void flushAndClean()
- Specified by:
flushAndClean
in interfaceAcknowledgmentsGroupingTracker
-
close
public void close()
- Specified by:
close
in interfaceAcknowledgmentsGroupingTracker
- Specified by:
close
in interfacejava.lang.AutoCloseable
-
-