Определите, какой фрагмент не удался на этапе на основе фрагмента в пакете Spring

#spring-batch

#spring-batch

Вопрос:

Я разрабатываю пакетное приложение Spring Batch —

Как понять или написать код для ?

  1. Определите, какой фрагмент вышел из строя на шаге, основанном на фрагменте?
  2. Как определить, занимает ли запрос читателя сколько времени?

Ответ №1:

  1. Определите, какой фрагмент вышел из строя на шаге, основанном на фрагменте?

A ChunkListener позволяет вам достичь этого. Метод afterChunkError будет вызываться при возникновении ошибки в данном блоке

  1. Как определить, занимает ли запрос читателя сколько времени?

Это зависит от читателя. ItemReadListener вызывается вокруг каждой операции чтения, которая обычно не вызывает запрос. Например, JdbcCursorItemReader выполняется запрос в openCursor методе. Этот метод защищен, вы можете переопределить его и настроить время по мере необходимости. Для JdbcPagingItemReader запроса для каждой страницы вызывается в doReadPage методе, который также защищен, поэтому вы можете переопределить его и рассчитать время по мере необходимости.

Комментарии:

1. Спасибо за ответ, есть ли какой-либо способ, если мы можем получить номер фрагмента или какой элемент является мусорными данными?

2. Для номера блока нет, вам нужно сохранить счетчик в вашем прослушивателе блоков. Для недопустимых элементов, да, вы можете использовать SkipListener для пропущенных элементов на этапах чтения / обработки / записи.

3. Спасибо за ответ. Я думаю, мы должны предоставить возможность доступа к фрагменту no. это действительно помогает найти точный фрагмент, а затем уменьшение размера фрагмента также может привести к получению значения

4. Это еще одна функция, вы можете открыть проблему, если хотите. Я полагаю, что я ответил на этот вопрос. Поэтому, пожалуйста, примите / поддержите ответ или дайте мне знать, если вам нужны другие подробности.