public class SeekToCurrentErrorHandler extends FailedRecordProcessor implements ContainerAwareErrorHandler
logger
Constructor and Description |
---|
SeekToCurrentErrorHandler()
Construct an instance with the default recoverer which simply logs the record after
(maxFailures) have occurred for a
topic/partition/offset.
|
SeekToCurrentErrorHandler(org.springframework.util.backoff.BackOff backOff)
Construct an instance with the default recoverer which simply logs the record after
the backOff returns STOP for a topic/partition/offset.
|
SeekToCurrentErrorHandler(java.util.function.BiConsumer<org.apache.kafka.clients.consumer.ConsumerRecord<?,?>,java.lang.Exception> recoverer)
Construct an instance with the provided recoverer which will be called after
(maxFailures) have occurred for a
topic/partition/offset.
|
SeekToCurrentErrorHandler(java.util.function.BiConsumer<org.apache.kafka.clients.consumer.ConsumerRecord<?,?>,java.lang.Exception> recoverer,
org.springframework.util.backoff.BackOff backOff)
Construct an instance with the provided recoverer which will be called after
the backOff returns STOP for a topic/partition/offset.
|
SeekToCurrentErrorHandler(java.util.function.BiConsumer<org.apache.kafka.clients.consumer.ConsumerRecord<?,?>,java.lang.Exception> recoverer,
int maxFailures)
Deprecated.
in favor of
SeekToCurrentErrorHandler(BiConsumer, BackOff) .
IMPORTANT When using a
FixedBackOff , the maxAttempts property
represents retries (one less than maxFailures). To retry indefinitely, use a fixed
or exponential BackOff configured appropriately. To use the other
constructor with the semantics of this one, with maxFailures equal to 3, use
new SeekToCurrentErrorHandler(recoverer, new FixedBackOff(0L, 2L) . |
SeekToCurrentErrorHandler(int maxFailures)
Deprecated.
in favor of
SeekToCurrentErrorHandler(BackOff) .
IMPORTANT When using a
FixedBackOff , the maxAttempts property
represents retries (one less than maxFailures). To retry indefinitely, use a fixed
or exponential BackOff configured appropriately. To use the other
constructor with the semantics of this one, with maxFailures equal to 3, use
new SeekToCurrentErrorHandler(new FixedBackOff(0L, 2L) . |
Modifier and Type | Method and Description |
---|---|
void |
handle(java.lang.Exception thrownException,
java.util.List<org.apache.kafka.clients.consumer.ConsumerRecord<?,?>> records,
org.apache.kafka.clients.consumer.Consumer<?,?> consumer,
MessageListenerContainer container)
Handle the exception.
|
boolean |
isAckAfterHandle()
Return true if the offset should be committed for a handled error (no exception
thrown).
|
void |
setAckAfterHandle(boolean ackAfterHandle)
Set to false to tell the container to NOT commit the offset for a recovered record.
|
void |
setClassifier(org.springframework.classify.BinaryExceptionClassifier classifier)
Deprecated.
|
void |
setCommitRecovered(boolean commitRecovered)
Set to true to commit the offset for a recovered record.
|
addNotRetryableException, clearThreadState, getClassifier, getSkipPredicate, isCommitRecovered, removeNotRetryableException, setClassifications
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
handle
handle
handle
clearThreadState
public SeekToCurrentErrorHandler()
@Deprecated public SeekToCurrentErrorHandler(int maxFailures)
SeekToCurrentErrorHandler(BackOff)
.
IMPORTANT When using a
FixedBackOff
, the maxAttempts property
represents retries (one less than maxFailures). To retry indefinitely, use a fixed
or exponential BackOff
configured appropriately. To use the other
constructor with the semantics of this one, with maxFailures equal to 3, use
new SeekToCurrentErrorHandler(new FixedBackOff(0L, 2L)
.maxFailures
- the maxFailures; a negative value is treated as infinity.public SeekToCurrentErrorHandler(org.springframework.util.backoff.BackOff backOff)
backOff
- the BackOff
.public SeekToCurrentErrorHandler(java.util.function.BiConsumer<org.apache.kafka.clients.consumer.ConsumerRecord<?,?>,java.lang.Exception> recoverer)
recoverer
- the recoverer.@Deprecated public SeekToCurrentErrorHandler(@Nullable java.util.function.BiConsumer<org.apache.kafka.clients.consumer.ConsumerRecord<?,?>,java.lang.Exception> recoverer, int maxFailures)
SeekToCurrentErrorHandler(BiConsumer, BackOff)
.
IMPORTANT When using a
FixedBackOff
, the maxAttempts property
represents retries (one less than maxFailures). To retry indefinitely, use a fixed
or exponential BackOff
configured appropriately. To use the other
constructor with the semantics of this one, with maxFailures equal to 3, use
new SeekToCurrentErrorHandler(recoverer, new FixedBackOff(0L, 2L)
.recoverer
- the recoverer; if null, the default (logging) recoverer is used.maxFailures
- the maxFailures; a negative value is treated as infinity.public SeekToCurrentErrorHandler(@Nullable java.util.function.BiConsumer<org.apache.kafka.clients.consumer.ConsumerRecord<?,?>,java.lang.Exception> recoverer, org.springframework.util.backoff.BackOff backOff)
recoverer
- the recoverer; if null, the default (logging) recoverer is used.backOff
- the BackOff
.public void setCommitRecovered(boolean commitRecovered)
ContainerProperties.AckMode.MANUAL_IMMEDIATE
. Whether or not
the commit is sync or async depends on the container's syncCommits
property.setCommitRecovered
in class FailedRecordProcessor
commitRecovered
- true to commit.@Deprecated public void setClassifier(org.springframework.classify.BinaryExceptionClassifier classifier)
FailedRecordProcessor.setClassifications(Map, boolean)
.DeserializationException
MessageConversionException
MethodArgumentResolutionException
NoSuchMethodException
ClassCastException
traverseCauses
will be set to true because the container always wraps exceptions in a
ListenerExecutionFailedException
.
This replaces the default classifier.setClassifier
in class FailedRecordProcessor
classifier
- the classifier.public void handle(java.lang.Exception thrownException, java.util.List<org.apache.kafka.clients.consumer.ConsumerRecord<?,?>> records, org.apache.kafka.clients.consumer.Consumer<?,?> consumer, MessageListenerContainer container)
ErrorHandler
handle
in interface ConsumerAwareErrorHandler
handle
in interface ContainerAwareErrorHandler
handle
in interface ErrorHandler
handle
in interface RemainingRecordsErrorHandler
thrownException
- the exception.records
- the remaining records including the one that failed.consumer
- the consumer.container
- the container.public boolean isAckAfterHandle()
GenericErrorHandler
isAckAfterHandle
in interface GenericErrorHandler<org.apache.kafka.clients.consumer.ConsumerRecord<?,?>>
public void setAckAfterHandle(boolean ackAfterHandle)
ackAfterHandle
- false to suppress committing the offset.