Java EE 7 Batch API — аналог MultiResourceItemReader

Spring Batch имеет удобный MultiResourceItemReader, я не смог найти аналогичный класс в API пакетной обработки Java EE 7. Мне интересно, включает ли API Java EE 7 что-то подобное. или если я могу добиться предполагаемого поведения для моего потока, используя другие службы Java EE:

Поток:

  1. Таймер считывает «запросы на извлечение» из центральной базы данных.
  2. Он также обновляет статус «pull request» на «в обработке».
  3. For each pull request
    1. Read the origin folder for the "pull request" as well as its "destination database"
    2. For each file in the origin folder
      1. Insert a entry in the file control table of the destination database
      2. Прочитайте и вставьте содержимое файла построчно (куском из N строк)
      3. Обновите запись, написанную на шаге 2.1.
      4. Переместите файл в новый каталог
    3. Вызовите хранимую процедуру в целевой базе данных, чтобы проверить и обработать текущие файлы «запроса на вытягивание».
  4. Обновите статус «pull request» на «обработано» в центральной базе данных.

Я могу написать и EJB Timer для шагов 1 и 2. Он будет запускать задание пакетной обработки для каждого запроса на включение (они могут выполняться параллельно).

Но у меня есть идея, как реализовать 3 (особенно 3.2) без MultiResourceItemReader. Я также не уверен, как правильно запустить шаг 4 после завершения каждого пакетного задания шага 3 (в среде Java SE я бы использовал для этого CountDownLatch).

Любые подсказки?


person Anthony Accioly    schedule 04.07.2014    source источник


Ответы (1)


Из spring.io Объявление о выпуске SB 3.0

JSR-352 не предоставляет каких-либо реализаций пакетных компонентов. Spring Batch предоставляет 17 программ чтения, 16 программ записи и множество других утилит и расширений, которые годами тестировались в производственной среде предприятия. Spring Batch предоставляет возможности масштабирования за пределами одной JVM. Наконец, Spring Batch обеспечивает поддержку больших данных как в рамках проекта Spring для Apache Hadoop, так и в качестве краеугольного камня Spring XD.

Чтобы узнать больше о реализации JSR-352 в Spring Batch, посетите нашу справочную документацию здесь: http://docs.spring.io/spring-batch/trunk/reference/html/jsr-352.html

person Luca Basso Ricci    schedule 05.07.2014
comment
Спасибо за информацию @Luca. Есть ли у вас какие-либо предложения о том, как реализовать данный поток без MultiResourceItemReader? - person Anthony Accioly; 05.07.2014
comment
определить считыватель одного элемента с помощью контрольной точки довольно просто. определить мультиресурс тоже может быть легко (реальный считыватель ресурсов с использованием делегата). установите свойства Resources[] и в контрольной точке сохраните индекс текущего ресурса. тщательно синхронизировать открытие/закрытие multiresourcereader и его делегата; то же самое для метода checkpointInfo - person Luca Basso Ricci; 05.07.2014
comment
извините, если приведенный выше комментарий беспорядок, но это просто идея, и я не знаю интерфейсы и объекты JSR352. конечно Resources[] не должен изменяться во время запуска/остановки/перезапуска задания - person Luca Basso Ricci; 05.07.2014