Как повторно использовать один и тот же итератор в несколько этапов (каждый из которых содержит различный считыватель элементов) в задании Spring Batch - PullRequest
0 голосов
/ 01 апреля 2019

Я создаю новое пакетное задание для создания файла извлечения.Я использую несколько SQL-запросов (каждый из которых использует свой собственный элемент чтения предметов), чтобы получить различные результаты из БД.Каков наилучший способ обработки и объединения / записи этих результатов в один файл для вывода?Нужно ли создавать новый процессор для каждого шага?Или есть что-то более эффективное?

Я вижу CompositeItemProcessor, но кажется, что он будет использоваться для объединения нескольких процессов в один шаг вместо использования в несколько этапов.

1 Ответ

0 голосов
/ 02 апреля 2019

Шаг, ориентированный на чанк, может иметь только одного считывателя, поэтому, если вы хотите прочитать элементы из разных источников и объединить их, вам потребуется несколько шагов. В вашем случае я бы протекал в два этапа:

  • Этап 1: несколько этапов, считывающих данные из разных источников и записывающих их во временное хранилище (например, в промежуточную таблицу). Вероятно, здесь нет необходимости в процессоре предметов. Эти шаги могут выполняться параллельно
  • Этап 2: шаг, ориентированный на фрагменты, считывает данные из временного хранилища, обрабатывает данные (путем объединения полей или выполнения любой бизнес-логики) и записывает результаты в консолидированный вывод

Надеюсь, это поможет.

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