Spring Batch - База данных для нескольких файлов - PullRequest
2 голосов
/ 15 апреля 2011

Я пытаюсь реализовать шаг, ориентированный на чанк, в весеннем пакете, который извлекает записи из базы данных и записывает каждый чанк в отдельный файл. Например, предположим, что в БД содержится 500 записей.Мне нужна моя работа, чтобы создать 10 файлов по 50 записей в каждом.

PS: Основная цель - одновременное создание выходных файлов.Поскольку реализации ItemWriter не являются поточно-ориентированными, я решил создать отдельные файлы в качестве выходных данных, чтобы можно было сократить общее время, затрачиваемое на выполнение шага.

Кто-нибудь знает, как реализовать его с помощью Spring Batch?Я нашел пример проекта, который обрабатывает несколько файлов параллельно, используя разбиение, но это не совсем то, что я хочу сделать.В моем случае входные данные представляют собой одну таблицу, а выходные данные - несколько файлов.

Вот ссылка: FileParallelProcessing

Ответы [ 2 ]

1 голос
/ 22 апреля 2011

Я нашел ответ,

partitionJdbcJob из весенних партийных образцов делает именно то, что я хочу

Источник задания Spring Batch Sample можно найти здесь

0 голосов
/ 18 апреля 2011

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

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

Таким образом, вы получаете преимущество многопоточности через Spring Batch, и вы сохраняетеконтроль потенциальных ошибок, написав себе сервис, который будет выводить ваши чанки в файлы.

Используйте ItemWriterAdapter , чтобы делегировать материал для записи вашему сервису.

...