Class MultiTopicsConsumerImpl<T>

  • All Implemented Interfaces:
    java.io.Closeable, java.lang.AutoCloseable, org.apache.pulsar.client.api.Consumer<T>
    Direct Known Subclasses:
    PatternMultiTopicsConsumerImpl

    public class MultiTopicsConsumerImpl<T>
    extends ConsumerBase<T>
    • Field Detail

      • DUMMY_TOPIC_NAME_PREFIX

        public static final java.lang.String DUMMY_TOPIC_NAME_PREFIX
        See Also:
        Constant Field Values
      • partitionedTopics

        protected final java.util.concurrent.ConcurrentHashMap<java.lang.String,​java.lang.Integer> partitionedTopics
      • topic

        protected final java.lang.String topic
    • Method Detail

      • messageProcessed

        protected void messageProcessed​(org.apache.pulsar.client.api.Message<?> msg)
        Specified by:
        messageProcessed in class ConsumerBase<T>
      • internalReceive

        protected org.apache.pulsar.client.api.Message<T> internalReceive()
                                                                   throws org.apache.pulsar.client.api.PulsarClientException
        Specified by:
        internalReceive in class ConsumerBase<T>
        Throws:
        org.apache.pulsar.client.api.PulsarClientException
      • internalReceive

        protected org.apache.pulsar.client.api.Message<T> internalReceive​(long timeout,
                                                                          java.util.concurrent.TimeUnit unit)
                                                                   throws org.apache.pulsar.client.api.PulsarClientException
        Specified by:
        internalReceive in class ConsumerBase<T>
        Throws:
        org.apache.pulsar.client.api.PulsarClientException
      • internalBatchReceive

        protected org.apache.pulsar.client.api.Messages<T> internalBatchReceive()
                                                                         throws org.apache.pulsar.client.api.PulsarClientException
        Specified by:
        internalBatchReceive in class ConsumerBase<T>
        Throws:
        org.apache.pulsar.client.api.PulsarClientException
      • internalBatchReceiveAsync

        protected java.util.concurrent.CompletableFuture<org.apache.pulsar.client.api.Messages<T>> internalBatchReceiveAsync()
        Specified by:
        internalBatchReceiveAsync in class ConsumerBase<T>
      • internalReceiveAsync

        protected java.util.concurrent.CompletableFuture<org.apache.pulsar.client.api.Message<T>> internalReceiveAsync()
        Specified by:
        internalReceiveAsync in class ConsumerBase<T>
      • doAcknowledge

        protected 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 txnImpl)
        Specified by:
        doAcknowledge in class ConsumerBase<T>
      • doAcknowledge

        protected 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)
        Specified by:
        doAcknowledge in class ConsumerBase<T>
      • doReconsumeLater

        protected 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.String> customProperties,
                                                                                          long delayTime,
                                                                                          java.util.concurrent.TimeUnit unit)
        Specified by:
        doReconsumeLater in class ConsumerBase<T>
      • negativeAcknowledge

        public void negativeAcknowledge​(org.apache.pulsar.client.api.MessageId messageId)
      • negativeAcknowledge

        public void negativeAcknowledge​(org.apache.pulsar.client.api.Message<?> message)
        Specified by:
        negativeAcknowledge in interface org.apache.pulsar.client.api.Consumer<T>
        Overrides:
        negativeAcknowledge in class ConsumerBase<T>
      • unsubscribeAsync

        public java.util.concurrent.CompletableFuture<java.lang.Void> unsubscribeAsync()
        Specified by:
        unsubscribeAsync in interface org.apache.pulsar.client.api.Consumer<T>
        Specified by:
        unsubscribeAsync in class ConsumerBase<T>
      • closeAsync

        public java.util.concurrent.CompletableFuture<java.lang.Void> closeAsync()
        Specified by:
        closeAsync in interface org.apache.pulsar.client.api.Consumer<T>
        Specified by:
        closeAsync in class ConsumerBase<T>
      • isConnected

        public boolean isConnected()
      • redeliverUnacknowledgedMessages

        public void redeliverUnacknowledgedMessages()
      • redeliverUnacknowledgedMessages

        public void redeliverUnacknowledgedMessages​(java.util.Set<org.apache.pulsar.client.api.MessageId> messageIds)
        Description copied from class: ConsumerBase
        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.
        Specified by:
        redeliverUnacknowledgedMessages in class ConsumerBase<T>
      • seek

        public void seek​(org.apache.pulsar.client.api.MessageId messageId)
                  throws org.apache.pulsar.client.api.PulsarClientException
        Throws:
        org.apache.pulsar.client.api.PulsarClientException
      • seek

        public void seek​(long timestamp)
                  throws org.apache.pulsar.client.api.PulsarClientException
        Throws:
        org.apache.pulsar.client.api.PulsarClientException
      • seek

        public void seek​(java.util.function.Function<java.lang.String,​java.lang.Object> function)
                  throws org.apache.pulsar.client.api.PulsarClientException
        Throws:
        org.apache.pulsar.client.api.PulsarClientException
      • seekAsync

        public java.util.concurrent.CompletableFuture<java.lang.Void> seekAsync​(java.util.function.Function<java.lang.String,​java.lang.Object> function)
      • seekAsync

        public java.util.concurrent.CompletableFuture<java.lang.Void> seekAsync​(org.apache.pulsar.client.api.MessageId messageId)
      • seekAsync

        public java.util.concurrent.CompletableFuture<java.lang.Void> seekAsync​(long timestamp)
      • hasReachedEndOfTopic

        public boolean hasReachedEndOfTopic()
      • hasMessageAvailable

        public boolean hasMessageAvailable()
                                    throws org.apache.pulsar.client.api.PulsarClientException
        Throws:
        org.apache.pulsar.client.api.PulsarClientException
      • hasMessageAvailableAsync

        public java.util.concurrent.CompletableFuture<java.lang.Boolean> hasMessageAvailableAsync()
      • getStats

        public org.apache.pulsar.client.api.ConsumerStats getStats()
      • subscribeAsync

        public java.util.concurrent.CompletableFuture<java.lang.Void> subscribeAsync​(java.lang.String topicName,
                                                                                     boolean createTopicIfDoesNotExist)
      • unsubscribeAsync

        public java.util.concurrent.CompletableFuture<java.lang.Void> unsubscribeAsync​(java.lang.String topicName)
      • removeConsumerAsync

        public java.util.concurrent.CompletableFuture<java.lang.Void> removeConsumerAsync​(java.lang.String topicName)
      • getPartitionedTopics

        public java.util.List<java.lang.String> getPartitionedTopics()
      • getPartitions

        public java.util.List<java.lang.String> getPartitions()
      • getConsumers

        public java.util.List<ConsumerImpl<T>> getConsumers()
      • pause

        public void pause()
      • resume

        public void resume()
      • getLastDisconnectedTimestamp

        public long getLastDisconnectedTimestamp()
      • getPartitionsAutoUpdateTimeout

        public io.netty.util.Timeout getPartitionsAutoUpdateTimeout()
      • getLastMessageIdAsync

        public java.util.concurrent.CompletableFuture<org.apache.pulsar.client.api.MessageId> getLastMessageIdAsync()
        Specified by:
        getLastMessageIdAsync in interface org.apache.pulsar.client.api.Consumer<T>
        Specified by:
        getLastMessageIdAsync in class ConsumerBase<T>
      • isIllegalMultiTopicsMessageId

        public static boolean isIllegalMultiTopicsMessageId​(org.apache.pulsar.client.api.MessageId messageId)
      • tryAcknowledgeMessage

        public void tryAcknowledgeMessage​(org.apache.pulsar.client.api.Message<T> msg)
      • 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)