Spring Batch: как объединить несколько задач или получить 2 задачи в одной - PullRequest
0 голосов
/ 24 сентября 2019

Я немного озадачен, мне нужно выполнить задачу, аналогичную следующей, с Spring Batch

  1. Чтение персоны из репозитория ==> Я могу использовать RepositoryItemReader
  2. (а) Создать файл CSV (FlatFileItemWriter) и (б) сохранить файл CSV в БД с сгенерированной датой (я могу использовать RepositoryItemWriter)

Но здесь я пытаюсь понять, как я могу дать сгенерированный файл CSVвывод 2а сохранить в БД 2б.Предположим, в CSV-файле содержится более 1000 личных данных, которые обрабатываются за один день

возможно ли объединить 2a и 2b?Я думал о CompositeItemWriter, но, поскольку здесь мы объединяем более 1000 сотрудников в CSV-файле, он не будет работать.

1 Ответ

0 голосов
/ 24 сентября 2019

Использование CompositeItemWriter не будет работать, так как вы будете пытаться записать неполный файл в базу данных для каждого куска.

Я бы не стал объединять 2a и 2b.Заставьте каждый шаг сделать одну вещь (и сделайте это хорошо):

  • Шаг 1 (тасклет, ориентированный на куски): прочитайте людей и сгенерируйте файл
  • Шаг 2 (простой тасклет):сохранить файл в базе данных

Шаг 1 может использовать контекст выполнения задания для передачи имени сгенерированного файла на шаг 2. Вы можете найти пример в Передача данных на будущие шаги раздел.Более того, при этой настройке шаг 2 не будет выполняться, если шаг 1 не выполнен (что имеет смысл для меня).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...