Я успешно создал учебный проект Spring Batch. Мне бы очень хотелось узнать, возможно ли сделать его многопоточным на уровне «Весна».Как настроить многопоточность в Spring Batch?
Основная идея того, что я хочу, состоит в том, чтобы составить список задач или шагов задачи и позволить им подхватываться и обрабатываться независимыми потоками, в идеале из пула, ограниченного числом «n» потоков.
Возможно ли это? Если да, то как? Может ли кто-нибудь показать мне, что я сейчас нахожусь?
Простой проект, который у меня есть, из этого урока here. В основном это разные задачи, которые выводят сообщение на экран.
Вот мой текущий файл simpleJob.xml, который содержит сведение о задании:
<import resource="applicationContext.xml"/>
<bean id="hello" class="helloworld.PrintTasklet">
<property name="message" value="Hello"/>
</bean>
<bean id="space" class="helloworld.PrintTasklet">
<property name="message" value=" "/>
</bean>
<bean id="world" class="helloworld.PrintTasklet">
<property name="message" value="World!\n"/>
</bean>
<bean id="taskletStep" class="org.springframework.batch.core.step.tasklet.TaskletStep" >
<property name="jobRepository" ref="jobRepository"/>
<property name="transactionManager" ref="transactionManager"/>
</bean>
<bean id="simpleJob" class="org.springframework.batch.core.job.SimpleJob">
<property name="name" value="simpleJob" />
<property name="steps">
<list>
<bean parent="taskletStep">
<property name="tasklet" ref="hello"/>
</bean>
<bean parent="taskletStep">
<property name="tasklet" ref="space"/>
</bean>
<bean parent="taskletStep">
<property name="tasklet" ref="world"/>
</bean>
</list>
</property>
<property name="jobRepository" ref="jobRepository"/>
</bean>
Мой контекст приложение содержит хранилище работы боба (SimpleJobRepository
), менеджер транзакций (ResourceLessTransactionManager
) и работу пусковой (SimpleJobLauncher
). Я также могу предоставить этот код, если захочу, но я просто не хотел увязывать этот пост с тоннами XML.
Большое спасибо за помощь!