Мне нужно выполнить семь отдельных процессов последовательно (один за другим). Данные хранятся в Mysql. Я думаю о следующих вариантах: Пожалуйста, поправьте меня, если я ошибаюсь, или если есть лучшее решение.Весенняя партия - цепочка процессоров
ТРЕБОВАНИЯМ:
читать данные из БД, сделать семь процессов, наконец, написать обработанные данные в БД (datavalidation, calculation1, calculation2 ... и т.д.)..
Необходимо обработать данные в кусках.
Мое решение и проблемы: данных следующим образом:
- Считывание данных с использованием JdbcCursorItemReader, потому что это лучшее выполнение дб читатель - Но, то SQL является очень сложным, так что я, возможно, придется рассмотрите пользовательский ItemReader, используя JdbcTemplate? что дает мне большую гибкость в обработке данных.
процесса:
Определить семь шагов и ломти, обмениваться данными между шагами, используя DataBean. Но это не будет хорошей идеей, потому что процессы обработки данных в кусках и после каждого фрагмента сценарий step1 создаст новый набор данных в databean. Когда этот файл данных будет использоваться для других шагов, целостность данных будет проблемой.
Использование StepExecutionContext для обмена данными между этапами. Но это может повлиять на производительность, поскольку это включает в себя репозиторий пакетных заданий.
Определите только один шаг с помощью одного элемента ItemReader и цепочки процессов (семь процессов) и создайте один элемент ItemWriter, который записывает обработанные данные в БД. Но я не смогу управлять или контролировать каждый процесс, все будет за один шаг.
Спасибо за ответ. – Nandan
Что касается администрирования, какой подход был бы наиболее подходящим? отдельные шаги или один шаг с помощью составного процессора? – Nandan
Отдельные шаги приводят к сложности при перезапуске в сценарии сбоя. Один шаг с CompositeItemProcessor означает, что все процессоры откатываются в случае сбоя. –