Package org.apache.pulsar.client.impl
Class ConsumerBase<T>
- java.lang.Object
-
- org.apache.pulsar.client.impl.ConsumerBase<T>
-
- All Implemented Interfaces:
java.io.Closeable,java.lang.AutoCloseable,org.apache.pulsar.client.api.Consumer<T>
- Direct Known Subclasses:
ConsumerImpl,MultiTopicsConsumerImpl
public abstract class ConsumerBase<T> extends java.lang.Object implements org.apache.pulsar.client.api.Consumer<T>
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static classConsumerBase.OpBatchReceive<T>
-
Field Summary
Fields Modifier and Type Field Description protected org.apache.pulsar.client.api.BatchReceivePolicybatchReceivePolicyprotected io.netty.util.TimeoutbatchReceiveTimeoutprotected PulsarClientImplclientprotected ConsumerConfigurationData<T>confprotected org.apache.pulsar.client.api.ConsumerEventListenerconsumerEventListenerprotected java.lang.StringconsumerNameprotected ExecutorProviderexecutorProviderprotected java.util.concurrent.ExecutorServiceexternalPinnedExecutorprotected longincomingMessagesSizeprotected ConsumerInterceptors<T>interceptorsprotected java.util.concurrent.ExecutorServiceinternalPinnedExecutorprotected org.apache.pulsar.client.api.MessageListener<T>listenerprotected intmaxReceiverQueueSizeprotected java.util.concurrent.ConcurrentLinkedQueue<ConsumerBase.OpBatchReceive<T>>pendingBatchReceivesprotected java.util.concurrent.ConcurrentLinkedQueue<java.util.concurrent.CompletableFuture<org.apache.pulsar.client.api.Message<T>>>pendingReceivesprotected java.util.concurrent.locks.LockreentrantLockprotected org.apache.pulsar.client.api.Schema<T>schemaprotected java.util.concurrent.CompletableFuture<org.apache.pulsar.client.api.Consumer<T>>subscribeFutureprotected java.lang.Stringsubscriptionprotected java.lang.Stringtopicprotected org.apache.pulsar.common.util.collections.ConcurrentOpenHashMap<MessageIdImpl,MessageIdImpl[]>unAckedChunkedMessageIdSequenceMap
-
Constructor Summary
Constructors Modifier Constructor Description protectedConsumerBase(PulsarClientImpl client, java.lang.String topic, ConsumerConfigurationData<T> conf, int receiverQueueSize, ExecutorProvider executorProvider, java.util.concurrent.CompletableFuture<org.apache.pulsar.client.api.Consumer<T>> subscribeFuture, org.apache.pulsar.client.api.Schema<T> schema, ConsumerInterceptors interceptors)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description voidacknowledge(java.util.List<org.apache.pulsar.client.api.MessageId> messageIdList)voidacknowledge(org.apache.pulsar.client.api.Message<?> message)voidacknowledge(org.apache.pulsar.client.api.MessageId messageId)voidacknowledge(org.apache.pulsar.client.api.Messages<?> messages)java.util.concurrent.CompletableFuture<java.lang.Void>acknowledgeAsync(java.util.List<org.apache.pulsar.client.api.MessageId> messageIdList)java.util.concurrent.CompletableFuture<java.lang.Void>acknowledgeAsync(org.apache.pulsar.client.api.Message<?> message)java.util.concurrent.CompletableFuture<java.lang.Void>acknowledgeAsync(org.apache.pulsar.client.api.MessageId messageId)java.util.concurrent.CompletableFuture<java.lang.Void>acknowledgeAsync(org.apache.pulsar.client.api.MessageId messageId, org.apache.pulsar.client.api.transaction.Transaction txn)java.util.concurrent.CompletableFuture<java.lang.Void>acknowledgeAsync(org.apache.pulsar.client.api.Messages<?> messages)voidacknowledgeCumulative(org.apache.pulsar.client.api.Message<?> message)voidacknowledgeCumulative(org.apache.pulsar.client.api.MessageId messageId)java.util.concurrent.CompletableFuture<java.lang.Void>acknowledgeCumulativeAsync(org.apache.pulsar.client.api.Message<?> message)java.util.concurrent.CompletableFuture<java.lang.Void>acknowledgeCumulativeAsync(org.apache.pulsar.client.api.MessageId messageId)java.util.concurrent.CompletableFuture<java.lang.Void>acknowledgeCumulativeAsync(org.apache.pulsar.client.api.MessageId messageId, org.apache.pulsar.client.api.transaction.Transaction txn)org.apache.pulsar.client.api.Messages<T>batchReceive()java.util.concurrent.CompletableFuture<org.apache.pulsar.client.api.Messages<T>>batchReceiveAsync()protected org.apache.pulsar.client.api.Message<T>beforeConsume(org.apache.pulsar.client.api.Message<T> message)protected voidcallMessageListener(org.apache.pulsar.client.api.Message<T> msg)protected booleancanEnqueueMessage(org.apache.pulsar.client.api.Message<T> message)protected booleanchangeToConnecting()protected booleanchangeToReadyState()protected booleanchangeToRegisteringSchemaState()protected voidclearIncomingMessages()voidclose()abstract java.util.concurrent.CompletableFuture<java.lang.Void>closeAsync()protected abstract voidcompleteOpBatchReceive(ConsumerBase.OpBatchReceive<T> op)protected voidcompletePendingBatchReceive(java.util.concurrent.CompletableFuture<org.apache.pulsar.client.api.Messages<T>> future, org.apache.pulsar.client.api.Messages<T> messages)protected voidcompletePendingReceive(java.util.concurrent.CompletableFuture<org.apache.pulsar.client.api.Message<T>> receivedFuture, org.apache.pulsar.client.api.Message<T> message)protected voiddecreaseIncomingMessageSize(org.apache.pulsar.client.api.Message<?> message)protected abstract java.util.concurrent.CompletableFuture<java.lang.Void>doAcknowledge(java.util.List<org.apache.pulsar.client.api.MessageId> messageIdList, org.apache.pulsar.common.api.proto.CommandAck.AckType ackType, java.util.Map<java.lang.String,java.lang.Long> properties, TransactionImpl txn)protected abstract java.util.concurrent.CompletableFuture<java.lang.Void>doAcknowledge(org.apache.pulsar.client.api.MessageId messageId, org.apache.pulsar.common.api.proto.CommandAck.AckType ackType, java.util.Map<java.lang.String,java.lang.Long> properties, TransactionImpl txn)protected java.util.concurrent.CompletableFuture<java.lang.Void>doAcknowledgeWithTxn(java.util.List<org.apache.pulsar.client.api.MessageId> messageIdList, org.apache.pulsar.common.api.proto.CommandAck.AckType ackType, java.util.Map<java.lang.String,java.lang.Long> properties, TransactionImpl txn)protected java.util.concurrent.CompletableFuture<java.lang.Void>doAcknowledgeWithTxn(org.apache.pulsar.client.api.MessageId messageId, org.apache.pulsar.common.api.proto.CommandAck.AckType ackType, java.util.Map<java.lang.String,java.lang.Long> properties, TransactionImpl txn)protected abstract java.util.concurrent.CompletableFuture<java.lang.Void>doReconsumeLater(org.apache.pulsar.client.api.Message<?> message, org.apache.pulsar.common.api.proto.CommandAck.AckType ackType, java.util.Map<java.lang.String,java.lang.Long> properties, long delayTime, java.util.concurrent.TimeUnit unit)protected booleanenqueueMessageAndCheckBatchReceive(org.apache.pulsar.client.api.Message<T> message)protected java.util.concurrent.CompletableFuture<java.lang.Void>failPendingReceive()protected org.apache.pulsar.client.impl.HandlerState.StategetAndUpdateState(java.util.function.UnaryOperator<org.apache.pulsar.client.impl.HandlerState.State> updater)abstract intgetAvailablePermits()PulsarClientImplgetClient()java.lang.StringgetConsumerName()longgetIncomingMessageSize()org.apache.pulsar.client.api.MessageIdgetLastMessageId()abstract java.util.concurrent.CompletableFuture<org.apache.pulsar.client.api.MessageId>getLastMessageIdAsync()protected MessagesImpl<T>getNewMessagesImpl()protected org.apache.pulsar.client.impl.HandlerState.StategetState()java.lang.StringgetSubscription()protected org.apache.pulsar.common.api.proto.CommandSubscribe.SubTypegetSubType()java.lang.StringgetTopic()intgetTotalIncomingMessages()booleanhasBatchReceiveTimeout()protected booleanhasEnoughMessagesForBatchReceive()protected booleanhasNextPendingReceive()protected booleanhasPendingBatchReceive()protected abstract org.apache.pulsar.client.api.Messages<T>internalBatchReceive()protected abstract java.util.concurrent.CompletableFuture<org.apache.pulsar.client.api.Messages<T>>internalBatchReceiveAsync()protected abstract org.apache.pulsar.client.api.Message<T>internalReceive()protected abstract org.apache.pulsar.client.api.Message<T>internalReceive(int timeout, java.util.concurrent.TimeUnit unit)protected abstract java.util.concurrent.CompletableFuture<org.apache.pulsar.client.api.Message<T>>internalReceiveAsync()protected abstract voidmessageProcessed(org.apache.pulsar.client.api.Message<?> msg)voidnegativeAcknowledge(org.apache.pulsar.client.api.Message<?> message)voidnegativeAcknowledge(org.apache.pulsar.client.api.Messages<?> messages)protected java.util.concurrent.CompletableFuture<org.apache.pulsar.client.api.Message<T>>nextPendingReceive()protected voidnotifyPendingBatchReceivedCallBack()protected voidnotifyPendingBatchReceivedCallBack(ConsumerBase.OpBatchReceive<T> opBatchReceive)abstract intnumMessagesInQueue()protected voidonAcknowledge(org.apache.pulsar.client.api.MessageId messageId, java.lang.Throwable exception)protected voidonAcknowledgeCumulative(org.apache.pulsar.client.api.MessageId messageId, java.lang.Throwable exception)protected voidonAckTimeoutSend(java.util.Set<org.apache.pulsar.client.api.MessageId> messageIds)protected voidonNegativeAcksSend(java.util.Set<org.apache.pulsar.client.api.MessageId> messageIds)protected voidonPartitionsChange(java.lang.String topicName, int partitions)protected byte[]peekMessageKey(org.apache.pulsar.client.api.Message<T> msg)org.apache.pulsar.client.api.Message<T>receive()org.apache.pulsar.client.api.Message<T>receive(int timeout, java.util.concurrent.TimeUnit unit)java.util.concurrent.CompletableFuture<org.apache.pulsar.client.api.Message<T>>receiveAsync()voidreconsumeLater(org.apache.pulsar.client.api.Message<?> message, long delayTime, java.util.concurrent.TimeUnit unit)voidreconsumeLater(org.apache.pulsar.client.api.Messages<?> messages, long delayTime, java.util.concurrent.TimeUnit unit)java.util.concurrent.CompletableFuture<java.lang.Void>reconsumeLaterAsync(org.apache.pulsar.client.api.Message<?> message, long delayTime, java.util.concurrent.TimeUnit unit)java.util.concurrent.CompletableFuture<java.lang.Void>reconsumeLaterAsync(org.apache.pulsar.client.api.Messages<?> messages, long delayTime, java.util.concurrent.TimeUnit unit)voidreconsumeLaterCumulative(org.apache.pulsar.client.api.Message<?> message, long delayTime, java.util.concurrent.TimeUnit unit)java.util.concurrent.CompletableFuture<java.lang.Void>reconsumeLaterCumulativeAsync(org.apache.pulsar.client.api.Message<?> message, long delayTime, java.util.concurrent.TimeUnit unit)protected abstract voidredeliverUnacknowledgedMessages(java.util.Set<org.apache.pulsar.client.api.MessageId> messageIds)Redelivers the given unacknowledged messages.protected voidresetIncomingMessageSize()protected voidsetMaxReceiverQueueSize(int newSize)protected voidsetState(org.apache.pulsar.client.impl.HandlerState.State s)java.util.concurrent.CompletableFuture<org.apache.pulsar.client.api.Consumer<T>>subscribeFuture()java.lang.StringtoString()protected voidtriggerBatchReceiveTimeoutTask()protected voidtryTriggerListener()voidunsubscribe()abstract java.util.concurrent.CompletableFuture<java.lang.Void>unsubscribeAsync()
-
-
-
Field Detail
-
subscription
protected final java.lang.String subscription
-
conf
protected final ConsumerConfigurationData<T> conf
-
consumerName
protected final java.lang.String consumerName
-
subscribeFuture
protected final java.util.concurrent.CompletableFuture<org.apache.pulsar.client.api.Consumer<T>> subscribeFuture
-
listener
protected final org.apache.pulsar.client.api.MessageListener<T> listener
-
consumerEventListener
protected final org.apache.pulsar.client.api.ConsumerEventListener consumerEventListener
-
executorProvider
protected final ExecutorProvider executorProvider
-
externalPinnedExecutor
protected final java.util.concurrent.ExecutorService externalPinnedExecutor
-
internalPinnedExecutor
protected final java.util.concurrent.ExecutorService internalPinnedExecutor
-
unAckedChunkedMessageIdSequenceMap
protected org.apache.pulsar.common.util.collections.ConcurrentOpenHashMap<MessageIdImpl,MessageIdImpl[]> unAckedChunkedMessageIdSequenceMap
-
pendingReceives
protected final java.util.concurrent.ConcurrentLinkedQueue<java.util.concurrent.CompletableFuture<org.apache.pulsar.client.api.Message<T>>> pendingReceives
-
maxReceiverQueueSize
protected int maxReceiverQueueSize
-
schema
protected final org.apache.pulsar.client.api.Schema<T> schema
-
interceptors
protected final ConsumerInterceptors<T> interceptors
-
batchReceivePolicy
protected final org.apache.pulsar.client.api.BatchReceivePolicy batchReceivePolicy
-
pendingBatchReceives
protected final java.util.concurrent.ConcurrentLinkedQueue<ConsumerBase.OpBatchReceive<T>> pendingBatchReceives
-
incomingMessagesSize
protected volatile long incomingMessagesSize
-
batchReceiveTimeout
protected volatile io.netty.util.Timeout batchReceiveTimeout
-
reentrantLock
protected final java.util.concurrent.locks.Lock reentrantLock
-
client
protected final PulsarClientImpl client
-
topic
protected final java.lang.String topic
-
-
Constructor Detail
-
ConsumerBase
protected ConsumerBase(PulsarClientImpl client, java.lang.String topic, ConsumerConfigurationData<T> conf, int receiverQueueSize, ExecutorProvider executorProvider, java.util.concurrent.CompletableFuture<org.apache.pulsar.client.api.Consumer<T>> subscribeFuture, org.apache.pulsar.client.api.Schema<T> schema, ConsumerInterceptors interceptors)
-
-
Method Detail
-
triggerBatchReceiveTimeoutTask
protected void triggerBatchReceiveTimeoutTask()
-
receive
public org.apache.pulsar.client.api.Message<T> receive() throws org.apache.pulsar.client.api.PulsarClientException
- Specified by:
receivein interfaceorg.apache.pulsar.client.api.Consumer<T>- Throws:
org.apache.pulsar.client.api.PulsarClientException
-
receiveAsync
public java.util.concurrent.CompletableFuture<org.apache.pulsar.client.api.Message<T>> receiveAsync()
- Specified by:
receiveAsyncin interfaceorg.apache.pulsar.client.api.Consumer<T>
-
internalReceive
protected abstract org.apache.pulsar.client.api.Message<T> internalReceive() throws org.apache.pulsar.client.api.PulsarClientException
- Throws:
org.apache.pulsar.client.api.PulsarClientException
-
internalReceiveAsync
protected abstract java.util.concurrent.CompletableFuture<org.apache.pulsar.client.api.Message<T>> internalReceiveAsync()
-
receive
public org.apache.pulsar.client.api.Message<T> receive(int timeout, java.util.concurrent.TimeUnit unit) throws org.apache.pulsar.client.api.PulsarClientException
- Specified by:
receivein interfaceorg.apache.pulsar.client.api.Consumer<T>- Throws:
org.apache.pulsar.client.api.PulsarClientException
-
internalReceive
protected abstract org.apache.pulsar.client.api.Message<T> internalReceive(int timeout, java.util.concurrent.TimeUnit unit) throws org.apache.pulsar.client.api.PulsarClientException
- Throws:
org.apache.pulsar.client.api.PulsarClientException
-
batchReceive
public org.apache.pulsar.client.api.Messages<T> batchReceive() throws org.apache.pulsar.client.api.PulsarClientException
- Specified by:
batchReceivein interfaceorg.apache.pulsar.client.api.Consumer<T>- Throws:
org.apache.pulsar.client.api.PulsarClientException
-
batchReceiveAsync
public java.util.concurrent.CompletableFuture<org.apache.pulsar.client.api.Messages<T>> batchReceiveAsync()
- Specified by:
batchReceiveAsyncin interfaceorg.apache.pulsar.client.api.Consumer<T>
-
hasNextPendingReceive
protected boolean hasNextPendingReceive()
-
nextPendingReceive
protected java.util.concurrent.CompletableFuture<org.apache.pulsar.client.api.Message<T>> nextPendingReceive()
-
completePendingReceive
protected void completePendingReceive(java.util.concurrent.CompletableFuture<org.apache.pulsar.client.api.Message<T>> receivedFuture, org.apache.pulsar.client.api.Message<T> message)
-
failPendingReceive
protected java.util.concurrent.CompletableFuture<java.lang.Void> failPendingReceive()
-
internalBatchReceive
protected abstract org.apache.pulsar.client.api.Messages<T> internalBatchReceive() throws org.apache.pulsar.client.api.PulsarClientException
- Throws:
org.apache.pulsar.client.api.PulsarClientException
-
internalBatchReceiveAsync
protected abstract java.util.concurrent.CompletableFuture<org.apache.pulsar.client.api.Messages<T>> internalBatchReceiveAsync()
-
acknowledge
public void acknowledge(org.apache.pulsar.client.api.Message<?> message) throws org.apache.pulsar.client.api.PulsarClientException- Specified by:
acknowledgein interfaceorg.apache.pulsar.client.api.Consumer<T>- Throws:
org.apache.pulsar.client.api.PulsarClientException
-
acknowledge
public void acknowledge(org.apache.pulsar.client.api.MessageId messageId) throws org.apache.pulsar.client.api.PulsarClientException- Specified by:
acknowledgein interfaceorg.apache.pulsar.client.api.Consumer<T>- Throws:
org.apache.pulsar.client.api.PulsarClientException
-
acknowledge
public void acknowledge(java.util.List<org.apache.pulsar.client.api.MessageId> messageIdList) throws org.apache.pulsar.client.api.PulsarClientException- Specified by:
acknowledgein interfaceorg.apache.pulsar.client.api.Consumer<T>- Throws:
org.apache.pulsar.client.api.PulsarClientException
-
acknowledge
public void acknowledge(org.apache.pulsar.client.api.Messages<?> messages) throws org.apache.pulsar.client.api.PulsarClientException- Specified by:
acknowledgein interfaceorg.apache.pulsar.client.api.Consumer<T>- Throws:
org.apache.pulsar.client.api.PulsarClientException
-
reconsumeLater
public void reconsumeLater(org.apache.pulsar.client.api.Message<?> message, long delayTime, java.util.concurrent.TimeUnit unit) throws org.apache.pulsar.client.api.PulsarClientException- Specified by:
reconsumeLaterin interfaceorg.apache.pulsar.client.api.Consumer<T>- Throws:
org.apache.pulsar.client.api.PulsarClientException
-
reconsumeLater
public void reconsumeLater(org.apache.pulsar.client.api.Messages<?> messages, long delayTime, java.util.concurrent.TimeUnit unit) throws org.apache.pulsar.client.api.PulsarClientException- Specified by:
reconsumeLaterin interfaceorg.apache.pulsar.client.api.Consumer<T>- Throws:
org.apache.pulsar.client.api.PulsarClientException
-
acknowledgeCumulative
public void acknowledgeCumulative(org.apache.pulsar.client.api.Message<?> message) throws org.apache.pulsar.client.api.PulsarClientException- Specified by:
acknowledgeCumulativein interfaceorg.apache.pulsar.client.api.Consumer<T>- Throws:
org.apache.pulsar.client.api.PulsarClientException
-
acknowledgeCumulative
public void acknowledgeCumulative(org.apache.pulsar.client.api.MessageId messageId) throws org.apache.pulsar.client.api.PulsarClientException- Specified by:
acknowledgeCumulativein interfaceorg.apache.pulsar.client.api.Consumer<T>- Throws:
org.apache.pulsar.client.api.PulsarClientException
-
reconsumeLaterCumulative
public void reconsumeLaterCumulative(org.apache.pulsar.client.api.Message<?> message, long delayTime, java.util.concurrent.TimeUnit unit) throws org.apache.pulsar.client.api.PulsarClientException- Specified by:
reconsumeLaterCumulativein interfaceorg.apache.pulsar.client.api.Consumer<T>- Throws:
org.apache.pulsar.client.api.PulsarClientException
-
acknowledgeAsync
public java.util.concurrent.CompletableFuture<java.lang.Void> acknowledgeAsync(org.apache.pulsar.client.api.Message<?> message)
- Specified by:
acknowledgeAsyncin interfaceorg.apache.pulsar.client.api.Consumer<T>
-
acknowledgeAsync
public java.util.concurrent.CompletableFuture<java.lang.Void> acknowledgeAsync(org.apache.pulsar.client.api.Messages<?> messages)
- Specified by:
acknowledgeAsyncin interfaceorg.apache.pulsar.client.api.Consumer<T>
-
acknowledgeAsync
public java.util.concurrent.CompletableFuture<java.lang.Void> acknowledgeAsync(java.util.List<org.apache.pulsar.client.api.MessageId> messageIdList)
- Specified by:
acknowledgeAsyncin interfaceorg.apache.pulsar.client.api.Consumer<T>
-
reconsumeLaterAsync
public java.util.concurrent.CompletableFuture<java.lang.Void> reconsumeLaterAsync(org.apache.pulsar.client.api.Message<?> message, long delayTime, java.util.concurrent.TimeUnit unit)- Specified by:
reconsumeLaterAsyncin interfaceorg.apache.pulsar.client.api.Consumer<T>
-
reconsumeLaterAsync
public java.util.concurrent.CompletableFuture<java.lang.Void> reconsumeLaterAsync(org.apache.pulsar.client.api.Messages<?> messages, long delayTime, java.util.concurrent.TimeUnit unit)- Specified by:
reconsumeLaterAsyncin interfaceorg.apache.pulsar.client.api.Consumer<T>
-
acknowledgeCumulativeAsync
public java.util.concurrent.CompletableFuture<java.lang.Void> acknowledgeCumulativeAsync(org.apache.pulsar.client.api.Message<?> message)
- Specified by:
acknowledgeCumulativeAsyncin interfaceorg.apache.pulsar.client.api.Consumer<T>
-
reconsumeLaterCumulativeAsync
public java.util.concurrent.CompletableFuture<java.lang.Void> reconsumeLaterCumulativeAsync(org.apache.pulsar.client.api.Message<?> message, long delayTime, java.util.concurrent.TimeUnit unit)- Specified by:
reconsumeLaterCumulativeAsyncin interfaceorg.apache.pulsar.client.api.Consumer<T>
-
acknowledgeAsync
public java.util.concurrent.CompletableFuture<java.lang.Void> acknowledgeAsync(org.apache.pulsar.client.api.MessageId messageId)
- Specified by:
acknowledgeAsyncin interfaceorg.apache.pulsar.client.api.Consumer<T>
-
acknowledgeAsync
public java.util.concurrent.CompletableFuture<java.lang.Void> acknowledgeAsync(org.apache.pulsar.client.api.MessageId messageId, org.apache.pulsar.client.api.transaction.Transaction txn)- Specified by:
acknowledgeAsyncin interfaceorg.apache.pulsar.client.api.Consumer<T>
-
acknowledgeCumulativeAsync
public java.util.concurrent.CompletableFuture<java.lang.Void> acknowledgeCumulativeAsync(org.apache.pulsar.client.api.MessageId messageId)
- Specified by:
acknowledgeCumulativeAsyncin interfaceorg.apache.pulsar.client.api.Consumer<T>
-
acknowledgeCumulativeAsync
public java.util.concurrent.CompletableFuture<java.lang.Void> acknowledgeCumulativeAsync(org.apache.pulsar.client.api.MessageId messageId, org.apache.pulsar.client.api.transaction.Transaction txn)- Specified by:
acknowledgeCumulativeAsyncin interfaceorg.apache.pulsar.client.api.Consumer<T>
-
negativeAcknowledge
public void negativeAcknowledge(org.apache.pulsar.client.api.Message<?> message)
- Specified by:
negativeAcknowledgein interfaceorg.apache.pulsar.client.api.Consumer<T>
-
doAcknowledgeWithTxn
protected java.util.concurrent.CompletableFuture<java.lang.Void> doAcknowledgeWithTxn(java.util.List<org.apache.pulsar.client.api.MessageId> messageIdList, org.apache.pulsar.common.api.proto.CommandAck.AckType ackType, java.util.Map<java.lang.String,java.lang.Long> properties, TransactionImpl txn)
-
doAcknowledgeWithTxn
protected java.util.concurrent.CompletableFuture<java.lang.Void> doAcknowledgeWithTxn(org.apache.pulsar.client.api.MessageId messageId, org.apache.pulsar.common.api.proto.CommandAck.AckType ackType, java.util.Map<java.lang.String,java.lang.Long> properties, TransactionImpl txn)
-
doAcknowledge
protected abstract java.util.concurrent.CompletableFuture<java.lang.Void> doAcknowledge(org.apache.pulsar.client.api.MessageId messageId, org.apache.pulsar.common.api.proto.CommandAck.AckType ackType, java.util.Map<java.lang.String,java.lang.Long> properties, TransactionImpl txn)
-
doAcknowledge
protected abstract java.util.concurrent.CompletableFuture<java.lang.Void> doAcknowledge(java.util.List<org.apache.pulsar.client.api.MessageId> messageIdList, org.apache.pulsar.common.api.proto.CommandAck.AckType ackType, java.util.Map<java.lang.String,java.lang.Long> properties, TransactionImpl txn)
-
doReconsumeLater
protected abstract java.util.concurrent.CompletableFuture<java.lang.Void> doReconsumeLater(org.apache.pulsar.client.api.Message<?> message, org.apache.pulsar.common.api.proto.CommandAck.AckType ackType, java.util.Map<java.lang.String,java.lang.Long> properties, long delayTime, java.util.concurrent.TimeUnit unit)
-
negativeAcknowledge
public void negativeAcknowledge(org.apache.pulsar.client.api.Messages<?> messages)
- Specified by:
negativeAcknowledgein interfaceorg.apache.pulsar.client.api.Consumer<T>
-
unsubscribe
public void unsubscribe() throws org.apache.pulsar.client.api.PulsarClientException- Specified by:
unsubscribein interfaceorg.apache.pulsar.client.api.Consumer<T>- Throws:
org.apache.pulsar.client.api.PulsarClientException
-
unsubscribeAsync
public abstract java.util.concurrent.CompletableFuture<java.lang.Void> unsubscribeAsync()
- Specified by:
unsubscribeAsyncin interfaceorg.apache.pulsar.client.api.Consumer<T>
-
close
public void close() throws org.apache.pulsar.client.api.PulsarClientException- Specified by:
closein interfacejava.lang.AutoCloseable- Specified by:
closein interfacejava.io.Closeable- Specified by:
closein interfaceorg.apache.pulsar.client.api.Consumer<T>- Throws:
org.apache.pulsar.client.api.PulsarClientException
-
closeAsync
public abstract java.util.concurrent.CompletableFuture<java.lang.Void> closeAsync()
- Specified by:
closeAsyncin interfaceorg.apache.pulsar.client.api.Consumer<T>
-
getLastMessageId
public org.apache.pulsar.client.api.MessageId getLastMessageId() throws org.apache.pulsar.client.api.PulsarClientException- Specified by:
getLastMessageIdin interfaceorg.apache.pulsar.client.api.Consumer<T>- Throws:
org.apache.pulsar.client.api.PulsarClientException
-
getLastMessageIdAsync
public abstract java.util.concurrent.CompletableFuture<org.apache.pulsar.client.api.MessageId> getLastMessageIdAsync()
- Specified by:
getLastMessageIdAsyncin interfaceorg.apache.pulsar.client.api.Consumer<T>
-
getSubType
protected org.apache.pulsar.common.api.proto.CommandSubscribe.SubType getSubType()
-
getAvailablePermits
public abstract int getAvailablePermits()
-
numMessagesInQueue
public abstract int numMessagesInQueue()
-
subscribeFuture
public java.util.concurrent.CompletableFuture<org.apache.pulsar.client.api.Consumer<T>> subscribeFuture()
-
getTopic
public java.lang.String getTopic()
- Specified by:
getTopicin interfaceorg.apache.pulsar.client.api.Consumer<T>
-
getSubscription
public java.lang.String getSubscription()
- Specified by:
getSubscriptionin interfaceorg.apache.pulsar.client.api.Consumer<T>
-
getConsumerName
public java.lang.String getConsumerName()
- Specified by:
getConsumerNamein interfaceorg.apache.pulsar.client.api.Consumer<T>
-
redeliverUnacknowledgedMessages
protected abstract void redeliverUnacknowledgedMessages(java.util.Set<org.apache.pulsar.client.api.MessageId> messageIds)
Redelivers the given unacknowledged messages. In Failover mode, the request is ignored if the consumer is not active for the given topic. In Shared mode, the consumers messages to be redelivered are distributed across all the connected consumers. This is a non blocking call and doesn't throw an exception. In case the connection breaks, the messages are redelivered after reconnect.
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
setMaxReceiverQueueSize
protected void setMaxReceiverQueueSize(int newSize)
-
beforeConsume
protected org.apache.pulsar.client.api.Message<T> beforeConsume(org.apache.pulsar.client.api.Message<T> message)
-
onAcknowledge
protected void onAcknowledge(org.apache.pulsar.client.api.MessageId messageId, java.lang.Throwable exception)
-
onAcknowledgeCumulative
protected void onAcknowledgeCumulative(org.apache.pulsar.client.api.MessageId messageId, java.lang.Throwable exception)
-
onNegativeAcksSend
protected void onNegativeAcksSend(java.util.Set<org.apache.pulsar.client.api.MessageId> messageIds)
-
onAckTimeoutSend
protected void onAckTimeoutSend(java.util.Set<org.apache.pulsar.client.api.MessageId> messageIds)
-
onPartitionsChange
protected void onPartitionsChange(java.lang.String topicName, int partitions)
-
canEnqueueMessage
protected boolean canEnqueueMessage(org.apache.pulsar.client.api.Message<T> message)
-
enqueueMessageAndCheckBatchReceive
protected boolean enqueueMessageAndCheckBatchReceive(org.apache.pulsar.client.api.Message<T> message)
-
hasEnoughMessagesForBatchReceive
protected boolean hasEnoughMessagesForBatchReceive()
-
notifyPendingBatchReceivedCallBack
protected void notifyPendingBatchReceivedCallBack()
-
notifyPendingBatchReceivedCallBack
protected final void notifyPendingBatchReceivedCallBack(ConsumerBase.OpBatchReceive<T> opBatchReceive)
-
completePendingBatchReceive
protected void completePendingBatchReceive(java.util.concurrent.CompletableFuture<org.apache.pulsar.client.api.Messages<T>> future, org.apache.pulsar.client.api.Messages<T> messages)
-
messageProcessed
protected abstract void messageProcessed(org.apache.pulsar.client.api.Message<?> msg)
-
tryTriggerListener
protected void tryTriggerListener()
-
callMessageListener
protected void callMessageListener(org.apache.pulsar.client.api.Message<T> msg)
-
peekMessageKey
protected byte[] peekMessageKey(org.apache.pulsar.client.api.Message<T> msg)
-
getNewMessagesImpl
protected MessagesImpl<T> getNewMessagesImpl()
-
hasPendingBatchReceive
protected boolean hasPendingBatchReceive()
-
resetIncomingMessageSize
protected void resetIncomingMessageSize()
-
decreaseIncomingMessageSize
protected void decreaseIncomingMessageSize(org.apache.pulsar.client.api.Message<?> message)
-
getIncomingMessageSize
public long getIncomingMessageSize()
-
getTotalIncomingMessages
public int getTotalIncomingMessages()
-
clearIncomingMessages
protected void clearIncomingMessages()
-
completeOpBatchReceive
protected abstract void completeOpBatchReceive(ConsumerBase.OpBatchReceive<T> op)
-
hasBatchReceiveTimeout
public boolean hasBatchReceiveTimeout()
-
changeToReadyState
protected boolean changeToReadyState()
-
changeToRegisteringSchemaState
protected boolean changeToRegisteringSchemaState()
-
getState
protected org.apache.pulsar.client.impl.HandlerState.State getState()
-
changeToConnecting
protected boolean changeToConnecting()
-
setState
protected void setState(org.apache.pulsar.client.impl.HandlerState.State s)
-
getAndUpdateState
protected org.apache.pulsar.client.impl.HandlerState.State getAndUpdateState(java.util.function.UnaryOperator<org.apache.pulsar.client.impl.HandlerState.State> updater)
-
getClient
public PulsarClientImpl getClient()
-
-