Spring пакетный запуск процессора/записывающего устройства в зависимости от размера фрагментаJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Spring пакетный запуск процессора/записывающего устройства в зависимости от размера фрагмента

Сообщение Anonymous »

Привет, я пытаюсь понять структуру весеннего пакета.
Учитывая следующую конфигурацию задания:

Код: Выделить всё

@Bean
public Step jobStep() {
return new StepBuilder("stepName", repo)
. chunk(10, txnManager)
.reader(reader)
.processor(processor)
.writer(writer)
.build();
}
И следующий пример процессора:

Код: Выделить всё

public class JobProcessor implements ItemProcessor {
@Override
public List process(List items) {
for (Entity record: items) {
//do some logic
return items;
}
Мои наблюдения заключаются в том, что устройство чтения/процессора/записи запускается столько же раз, сколько и размер фрагмента. Например, в приведенном выше примере процессор запустится 10 раз, и записывающее устройство тоже. Если мой читатель извлекает только 2 записи, это меньше размера чанка.
Размер списка в ItemProcessor равен всего 2 – почему он выполняется еще 8 раз если передан весь набор записей? Единственный способ избежать дублирующей обработки — это отслеживать, обрабатывается (и записывается) элемент или нет.
Это несложно сделать, но я хочу понять, является ли это нормальным поведением. или если я делаю что-то не так.
Вкратце: если набор записей пакета Spring меньше размера фрагмента, разве процессор/записатель не должен запускаться только один раз, поскольку первый фрагмент содержит весь набор записей?

Подробнее здесь: https://stackoverflow.com/questions/784 ... chunk-size
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»