2010-11-03 3 views
1

Недавно я начал изучать Spring Batch, чтобы использовать некоторые из его более сложных функций, таких как асинхронная пакетная обработка, остановка работы и планирование, чтобы заменить некоторые существующие функциональность пакетной обработки и реализовать новые функции пакетной обработки. Прямо сейчас, я пытаюсь выяснить, как динамически обрабатывать несколько пакетных файлов и генерировать файл «получения» для каждого входного файла, и я смущен некоторыми дизайнерскими решениями архитекторов Spring Batch. Кажется, что для обработки простого плоского CSV-файла и генерации вывода мне придется вручную взломать компоненты в моем ApplicationContext и вручную установить их свойства ресурса во время выполнения, чтобы добиться того, что я хочу с помощью FlatFileItemReader и FlatFileItemWriter. Это не является ни безопасным, ни хорошей практикой для того, что, как утверждается, является многопоточной высокопроизводительной пакетной обработкой. Я что-то пропустил?Динамическая обработка нескольких пакетных файлов и генерация соответствующих выходных файлов с помощью Spring Batch

+0

Я ответил на вопрос о взломе собственности: бобы, связанные с заданием, могут быть уникальными для JobInstance, используя scope = «step» для bean-компонентов, что является дополнением к Spring Framework, предоставленному Spring Batch , но я все еще ищу простой способ сопоставить «n» входные партии с выводами «n». –

+0

Alex Вы все еще ищете ответ на свой вопрос о том, как создать общую работу для обработки нескольких исходных файлов и вывести файл квитанции? –

ответ

0

Как оказалось, я неправильно понял некоторые документы. Spring Batch представляет новую область «шаг» и использует ее для создания новых компонентов для каждого шага в пакетном потоке на основе компонента с именем, указанным в конфигурации для читателей и писателей. Затем он динамически настраивает их с помощью EL. Что касается получения нескольких партий, я только что закончил настройку для одного определения партии, а затем переместил многократную обработку пакета в код.

+0

не могли бы вы помочь мне с этим http://stackoverflow.com/questions/7878122/dataloader-using-spring-batch-partitioning –

0

Похоже, вы можете использовать MultiResourceItemReader, чтобы указать несколько ресурсов и установить FlatFileItemReader в качестве делегата MultiResourceItemReaders.

+0

Я действительно смотрел на это, но нет (удобного) способа мультиплексирования выходных файлов из входных файлов. –