Если я определю это для весенней партии:
<chunk reader = "chunkReader"
writer = "chunkWriter"
processor = "chunkProcessor"
commit-interval = "#{jobParameters['commitSize']}" />
В этой весенней пакетной обработке, ориентированной на фрагменты, обрабатываются ли фрагменты параллельно? И обрабатываются ли отдельные элементы в чанках параллельно?
В основном я спрашиваю, нужно ли мне беспокоиться о многопоточности и условиях гонки.
Если вы не укажете Spring, все будет последовательно.
Если вы решите использовать многопоточность, пакетное задание может использовать абстракцию Spring TaskExecutor для выполнения каждого фрагмента в своем собственном потоке. Шаг задания можно настроить для выполнения в пуле потоков, обрабатывая каждый фрагмент независимо. По мере обработки фрагментов Spring Batch отслеживает, что было сделано соответствующим образом. Если в любом из потоков возникает ошибка, выполнение задания откатывается или прекращается в соответствии с обычными функциями Spring Batch.
См .: https://docs.spring.io/spring-batch/trunk/reference/html/scalability.html
а также
Это просто определение фрагмента в шаге, ориентированном на фрагменты. Ничего общего с многопоточностью или параллельной обработкой. Вам нужно показать определение включающего тасклета, чтобы увидеть, определил ли он taskExecutor для многопоточного выполнения: docs.spring.io/spring-batch/4.0.x/reference/html/…