Spring Batch имеет удобный MultiResourceItemReader, я не смог найти аналогичный класс в API пакетной обработки Java EE 7. Мне интересно, включает ли API Java EE 7 что-то подобное. или если я могу добиться предполагаемого поведения для моего потока, используя другие службы Java EE:
Поток:
- Таймер считывает «запросы на извлечение» из центральной базы данных.
- Он также обновляет статус «pull request» на «в обработке».
- For each pull request
- Read the origin folder for the "pull request" as well as its "destination database"
- For each file in the origin folder
- Insert a entry in the file control table of the destination database
- Прочитайте и вставьте содержимое файла построчно (куском из N строк)
- Обновите запись, написанную на шаге 2.1.
- Переместите файл в новый каталог
- Вызовите хранимую процедуру в целевой базе данных, чтобы проверить и обработать текущие файлы «запроса на вытягивание».
- Обновите статус «pull request» на «обработано» в центральной базе данных.
Я могу написать и EJB Timer для шагов 1 и 2. Он будет запускать задание пакетной обработки для каждого запроса на включение (они могут выполняться параллельно).
Но у меня есть идея, как реализовать 3 (особенно 3.2) без MultiResourceItemReader
. Я также не уверен, как правильно запустить шаг 4 после завершения каждого пакетного задания шага 3 (в среде Java SE я бы использовал для этого CountDownLatch
).
Любые подсказки?