Spring batch 并行执行中的作业上下文[Spring批处理]
我使用AsynchJobLaucher启动spring批处理作业。我试图并行执行同一个作业,但似乎第二个启动的作业对第一个作业产生了副作用。(第一个作业的步骤_输出值似乎被第二个作业覆盖。 如果我使用Synch JobLauncher,一切都很好 我的问题是,我可以用以下方式使用jobContext吗 MyTaskLetStep(实现StepExecutionListener): 已启动的作业如下所示:Spring batch 并行执行中的作业上下文[Spring批处理],spring-batch,Spring Batch,我使用AsynchJobLaucher启动spring批处理作业。我试图并行执行同一个作业,但似乎第二个启动的作业对第一个作业产生了副作用。(第一个作业的步骤_输出值似乎被第二个作业覆盖。 如果我使用Synch JobLauncher,一切都很好 我的问题是,我可以用以下方式使用jobContext吗 MyTaskLetStep(实现StepExecutionListener): 已启动的作业如下所示: <batch:job id="TACKJob" restartable="tr
<batch:job id="TACKJob" restartable="true" incrementer="runIdIncrementer" parent="joblistenerjob">
<batch:step id="F1" next = "F2">
<batch:tasklet ref="N_COMMAND"/>
</batch:step>
<batch:step id="F2">
<batch:tasklet ref="Z_COMMAND"/>
</batch:step>
</batch:job>
引用的tasklet bean是原型范围的bean。它们实现了引用的StepExecutionListener
你对这个问题有什么建议吗
谢谢您是否尝试过将您的tasklet配置为步骤作用域?使用步骤作用域似乎很有趣。顺便说一句,步骤和原型之间有什么区别?使用步骤作用域为每个新步骤创建一个新的bean,其中与原型一样,每当请求时都会创建一个新bean。因此,使用原型时,相同的bean可以是instantia每一步不止一次。
<batch:job id="TACKJob" restartable="true" incrementer="runIdIncrementer" parent="joblistenerjob">
<batch:step id="F1" next = "F2">
<batch:tasklet ref="N_COMMAND"/>
</batch:step>
<batch:step id="F2">
<batch:tasklet ref="Z_COMMAND"/>
</batch:step>
</batch:job>