如何在弹簧批次中设置多线程?
2022-09-04 01:54:16
我已经成功地设置了一个教程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 包含作业存储库 Bean ()、事务管理器 () 和作业启动器 ()。如果需要,我也可以提供此代码,我只是不想用大量的XML来困扰这篇文章。SimpleJobRepository
ResourceLessTransactionManager
SimpleJobLauncher
非常感谢您的任何帮助!