2015-04-01 3 views
0

Я разработал одно приложение, в котором мы должны обработать более 5 миллионов записей из одной большой таблицы. Мы использовали весеннее пакетное дистанционное разбиение, и оно отлично работает.Весенний пакетный удаленный раздел с несколькими таблицами

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

Мой вопрос в том, что это может быть сделано, если да, то есть ли какой-либо образец там, на github.

Спасибо

ответ

0

Да, это можно сделать. Вам понадобится реализовать свой собственный Partitioner для обработки логики создания ExecutionContexts для каждого диапазона таблицы/строки.

Пару хороших ресурсов:

+1

Спасибо Майкл. Я смотрел видео на канале весеннего разработчика, и из-за этого моя первая реализация прошла очень хорошо. Поэтому большое спасибо за весеннее погружение. – user509755

+0

После попытки пользовательского разделителя, который смог разделить мою таблицу с соответствующей информацией раздела, я столкнулся с проблемой на подчиненной стороне. Там, где мой подчиненный пользовательский читатель читал информацию о парировании с шага, но он продолжал обрабатывать одно и то же разбиение и входить в бесконечный цикл. Что мне нужно вернуть назад, чтобы сообщить aggegator, что этот раздел успешно обработан? – user509755

+0

'ItemReader' должен возвращать' null', чтобы указать, что вход был исчерпан. Если шаг завершается нормально, Spring Batch (в частности, «StepExecutionRequestHandler») будет обрабатывать остальные. –

Смежные вопросы