Spring Batch проверяет строку и отправляет письмо, если проверка не пройдена - PullRequest
1 голос
/ 11 марта 2019

Я хочу выполнить некоторую проверку в строке, которую я обрабатываю, и если проверка не удалась, я хотел бы отправить электронное письмо, что мы не можем обработать эту строку. Как я могу этого достичь? Я использую FlatFileItemReader и процессор после него.

Ответы [ 2 ]

2 голосов
/ 11 марта 2019

Я использую FlatFileItemReader и процессор после него

Вот так я бы тоже это сделал.В вашем процессоре вы можете реализовать логику проверки и выдать исключение для недопустимых элементов.Это один из типичных сценариев использования процессора элементов BTW.В разделе Проверка ввода справочной документации приведен пример.

Затем можно настроить исключение для пропуска и использовать SkipListener для хранения недопустимых элементов (либо в памяти, либо вфайл и т. д.).Наконец, вы можете использовать дополнительный шаг тасклета для отправки электронного письма с этими недопустимыми элементами.

HTH.

0 голосов
/ 12 марта 2019

У меня проблема после добавления faultTolerant, skipLimit пропустить в шаг конфигурации. В этой настройке я не могу использовать build ()

return stepBuilderFactory.get("job")
                .allowStartIfComplete(true)
                .<RegisterUserRequest, RegisterUserRequest>chunk(2000)
                .reader(registerUserFromFileReader)
                .processor(registerUserProcessor)
                .faultTolerant()
                .skipLimit(50000)
                .skip(RegisterUserLineException.class)
                .listener(registerUserSkipListener)
                .writer(userRegistration)
                .listener(registerUserFinalizer)
                .build() //doesn't work
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...