Class FailedRecordProcessor

    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected org.springframework.core.log.LogAccessor logger  
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      protected FailedRecordProcessor​(java.util.function.BiConsumer<org.apache.kafka.clients.consumer.ConsumerRecord<?,​?>,​java.lang.Exception> recoverer, org.springframework.util.backoff.BackOff backOff)  
    • Field Detail

      • logger

        protected final org.springframework.core.log.LogAccessor logger
    • Constructor Detail

      • FailedRecordProcessor

        protected FailedRecordProcessor​(@Nullable
                                        java.util.function.BiConsumer<org.apache.kafka.clients.consumer.ConsumerRecord<?,​?>,​java.lang.Exception> recoverer,
                                        org.springframework.util.backoff.BackOff backOff)
    • Method Detail

      • isCommitRecovered

        protected boolean isCommitRecovered()
        Whether the offset for a recovered record should be committed.
        Returns:
        true to commit recovered record offsets.
      • setCommitRecovered

        public void setCommitRecovered​(boolean commitRecovered)
        Set to true to commit the offset for a recovered record.
        Parameters:
        commitRecovered - true to commit.
      • setBackOffFunction

        public void setBackOffFunction​(java.util.function.BiFunction<org.apache.kafka.clients.consumer.ConsumerRecord<?,​?>,​java.lang.Exception,​org.springframework.util.backoff.BackOff> backOffFunction)
        Set a function to dynamically determine the BackOff to use, based on the consumer record and/or exception. If null is returned, the default BackOff will be used.
        Parameters:
        backOffFunction - the function.
        Since:
        2.6
      • setResetStateOnRecoveryFailure

        public void setResetStateOnRecoveryFailure​(boolean resetStateOnRecoveryFailure)
        Set to false to immediately attempt to recover on the next attempt instead of repeating the BackOff cycle when recovery fails.
        Parameters:
        resetStateOnRecoveryFailure - false to retain state.
        Since:
        2.5.5
      • setResetStateOnExceptionChange

        public void setResetStateOnExceptionChange​(boolean resetStateOnExceptionChange)
        Set to true to reset the retry BackOff if the exception is a different type to the previous failure for the same record. The backOffFunction, if provided, will be called to get the BackOff to use for the new exception; otherwise, the configured BackOff will be used.
        Parameters:
        resetStateOnExceptionChange - true to reset.
        Since:
        2.6.3
      • setRetryListeners

        public void setRetryListeners​(RetryListener... listeners)
        Set one or more RetryListener to receive notifications of retries and recovery.
        Parameters:
        listeners - the listeners.
        Since:
        2.7
      • deliveryAttempt

        public int deliveryAttempt​(TopicPartitionOffset topicPartitionOffset)
        Description copied from interface: DeliveryAttemptAware
        Return the next delivery attempt for the topic/partition/offset.
        Specified by:
        deliveryAttempt in interface DeliveryAttemptAware
        Parameters:
        topicPartitionOffset - the topic/partition/offset.
        Returns:
        the next delivery attempt.
      • getSkipPredicate

        @Deprecated
        protected java.util.function.BiPredicate<org.apache.kafka.clients.consumer.ConsumerRecord<?,​?>,​java.lang.Exception> getSkipPredicate​(java.util.List<org.apache.kafka.clients.consumer.ConsumerRecord<?,​?>> records,
                                                                                                                                                         java.lang.Exception thrownException)
        Deprecated.
        Return a BiPredicate to call to determine whether the first record in the list should be skipped.
        Parameters:
        records - the records.
        thrownException - the exception.
        Returns:
        the BiPredicate.
      • getRecoveryStrategy

        protected RecoveryStrategy getRecoveryStrategy​(java.util.List<org.apache.kafka.clients.consumer.ConsumerRecord<?,​?>> records,
                                                       java.lang.Exception thrownException)
        Return a RecoveryStrategy to call to determine whether the first record in the list should be skipped.
        Parameters:
        records - the records.
        thrownException - the exception.
        Returns:
        the RecoveryStrategy.
        Since:
        2.7
      • clearThreadState

        public void clearThreadState()