Как разбить большой файл на более мелкие файлы для параллельной обработки в весенний пакет? - PullRequest
0 голосов
/ 03 октября 2019

У нас есть большой файл, который можно разделить логически (не по диапазону, а по появлению следующей записи заголовка)

Например

HeaderRecord1
... большое количествоподробные записи
HeaderRecord2
... большое количество подробных записей
и так далее ...

Мы хотим разбить файл на несколько небольших файлов на уровне HeaderRecord и обработать их впараллельно.

Как этого добиться в Spring Batch? Когда я зашел в Google, я наткнулся на Systemcommandtasklet и использовал команду разделения Linux / Unix для разделения.

Это лучший подход? Есть ли в Spring Batch варианты разделов?

Спасибо и всего наилучшего

1 Ответ

0 голосов
/ 04 октября 2019

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

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