2012-07-27 2 views
1

В одной из моих партий мне нужно вызвать веб-службу, чтобы обогатить некоторые данные из элемента, прочитанного в db, проверить некоторые значения и затем записать этот элемент обогащения в другой Таблица. Мой веб-сервис может поддерживать несколько запросов в одном и том же вызове, чтобы свести к минимуму количество вызовов в веб-службу. На самом деле мой вызов веб-службы определяется как процессор:Примените процессор к нескольким элементам вместо одного в Spring btach

<batch:tasklet task-executor="taskExecutor"> 
    <batch:chunk reader="bookingReader" processor="bookingEnrichWSProcessor" 
    writer="bookingCompositeWriter" commit-interval="10" /> 
</batch:tasklet> 

Кажется, что только элемент писатель может поддерживать написание нескольких элементов в одном вызове используя свойство совершать-интервал в определении шага.

То, что мне нужно, - читать предметы десять-десять с читателем и называть ws 10 элементами, прежде чем снова их перевернуть в другую таблицу.

Возможно ли это сделать в классе процессоров? или я должен перенести эту логику в писателя.

Спасибо за нашу помощь

ответ

1

Вы должны изменить свой читатель, процессор и писатель: читатель должен вывод объект. Этот объект может быть List < something>.

Затем процессор получает этот список как параметр и может вызывать ваш WS с элементами в списке.

Наконец, писатель также получит список объектов. Вы пишете их. Не забудьте удалить интервал фиксации: при обработке только одного объекта (списка из 10 элементов) вы устанавливаете интервал фиксации равным 1 (если вы хотите записать 10 элементов).

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