2013-09-25 4 views
0

Я использую Spring Batch 2.1.8.RELEASE. У меня есть файл, который состоит из некоторой информации заголовка, за которой следуют некоторые записи, которые мне нужно обработать.Многопоточная обработка данных с использованием Spring Batch

У меня есть шаг, который использует обработку, ориентированную на кусок. Этот шаг содержит реализацию ItemReader и ItemWriter. Реализация ItemReader является потокобезопасной, а ItemWriter - нет.

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

Предлагаемое решение: Одним из решений может быть запись этапа предварительного процесса и извлечение информации заголовка.

Есть ли альтернативное решение?

Благодаря

ответ

1

Вы можете попробовать Approch похожи ни на один описатель в Spring Batch Item Reader - use skippedLinesCallback to set input field names: вы должны вводить боб headerCallback в читатель (и процессор или писатель) и использовать его безопасно, потому что боб headerCallback был вызван из своего читателя ,

Я надеюсь, что было ясно, английский не является моим родным языком (и я в неприятности с прошлыми временами «-_-)

+0

Спасибо большого bellabax, но только, чтобы прояснить вопрос, у меня есть несколько -строчный заголовок. Кроме того, я установил предел дросселя> 1 для масштабирования, в этом случае, как я могу гарантировать, что кусок, содержащий заголовок, обрабатывается (или записывается) перед любым другим фрагментом? – Sid

+0

Я не знаю этого конкретного поведения, но для FlatFileItemReader свойство skipLines управляется до следующего следующего чтения и должно работать –

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