Я успешно настроил учебный проект Spring Batch. Мне бы очень хотелось узнать, возможно ли сделать его многопоточным на «весеннем уровне».
Основная идея того, что я хочу, - составить список задач или шагов задачи и позволить им подбираться и обрабатываться независимыми потоками, в идеале из пула, ограниченного числом потоков n.
Возможно ли это? Если так, то как? Может ли кто-нибудь показать мне, откуда я сейчас нахожусь?
Простой проект, который у меня есть, взят из этого урока здесь . В основном это разные задачи, которые выводят сообщение на экран.
Вот мой текущий файл 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>
Мой appContext содержит компонент репозитория заданий (SimpleJobRepository
), диспетчер транзакций (ResourceLessTransactionManager
) и средство запуска заданий (SimpleJobLauncher
). Я могу также предоставить этот код при желании, я просто не хотел заваливать этот пост тоннами XML.
Большое спасибо за любую помощь!