Пользовательский перетасовка на основе исключений, брошенных пакетным потребителемJAVA

Программисты JAVA общаются здесь
Anonymous
Пользовательский перетасовка на основе исключений, брошенных пакетным потребителем

Сообщение Anonymous »

Что я пытаюсь реализовать: < /strong> < /p>
Я хотел бы реализовать пользовательскую стратегию отступления повторной попытки, основанную на исключении, добавленном в пакетном потребителе. Infinety. }) , как объяснено в документации Spring Kafka. Однако при использовании пакетного слушателя, кажется, его игнорируют и не применяет пользовательскую отступление повторной попытки на основе исключения. Вместо этого он применяет конфигурацию по умолчанию для всех исключений (максимум 10 повторений). < /P>
Конфигурация, которую я пробовал, заключается в следующем: < /p>

Код: Выделить всё

DefaultErrorHandler handler = new DefaultErrorHandler();
handler.setBackOffFunction((record, exception) -> {

if (exception instanceof InfiniteRetryableException) {
return new FixedBackOff(1000L, FixedBackOff.UNLIMITED_ATTEMPTS);
}
else if (exception instanceof LimitedRetryableException) {
return new FixedBackOff(1000L, 5L);
}

return null;

});
Вопросы: [/b]
  • Являются ли пользовательские повторные перерывы на основе исключений, поддерживаемых для партийных слушателей?
  • Если они поддерживаются, как я могу их реализовать? />
    После дальнейшего расследования я обнаружил, что проблема возникает при использовании исключений, которые не расширяют PactlistenerEderedException, которое специально предназначено для предотвращения повторения всей партии. Как только я обновил два пользовательских исключения, чтобы унаследовать от pactlistenerfailedException, все начало работать, как и ожидалось.


Подробнее здесь: https://stackoverflow.com/questions/795 ... h-consumer

Вернуться в «JAVA»