Пружинная партия: динамический размер куска - PullRequest
1 голос
/ 10 апреля 2019

У меня есть пошаговое чтение нескольких ресурсов, мне нужно изменить размер чанка в зависимости от количества строк в каждом файле.возможно ли использование пружинного пакета динамического размера куска или есть другой способ сделать это?

1 Ответ

0 голосов
/ 10 апреля 2019

Вы можете сделать Spring Batch Step Partitioning .Разделение шага таким образом, чтобы у шага было несколько потоков, каждый из которых обрабатывал кусок данных параллельно.Это полезно, если у вас есть большой кусок данных, который можно логически разделить на более мелкие куски, которые можно обрабатывать параллельно.Это работает так, что вы определяете главный шаг, который отвечает за определение основы блоков, а затем перерабатывает все эти блоки в набор подчиненных шагов для обработки каждого блока.

При настройкеразделенный шаг, вы определяете шаг так же, как и любой другой шаг, присваивая ему идентификатор и, если требуется, значение следующего шага.Вместо определения содержимого шага как обычного chunk или tasklet , Spring Batch предоставляет тег раздела, который требует от вас указать шаг задания, подлежащий разбиению, и Partitioner, который будет использоваться для определения порций данных.Вам также нужно будет определить обработчик раздела, который будет обрабатывать эти шаги, в этом случае мы будем использовать ThreadPoolTaskExecutor , который будет иметь размер пула потоков 10 и разрешать им тайм-аут, если они не будут 't используется.

<bean id="loadTaskExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">
    <property name="corePoolSize" value="10" />
    <property name="maxPoolSize" value="10" />
    <property name="allowCoreThreadTimeOut" value="true" />
</bean>

Информация о режиме здесь: https://keyholesoftware.com/2013/12/09/spring-batch-partitioning/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...