我正在使用Asynch jobLaucher来启动弹簧批处理作业。我尝试并行执行相同的工作,但似乎第二次启动工作对第一份工作造成了副作用。 (似乎第2个作业覆盖了第1个作业的step_output的值。 如果我使用Synch JobLauncher,一切都很好。
我的问题是。我可以用以下方式使用jobContext吗?
MyTaskLetStep(实现StepExecutionListener):
public void beforeStep(StepExecution stepExecution) {
JobExecution jobExecution = stepExecution.getJobExecution();
ExecutionContext jobContext = jobExecution.getExecutionContext();
...
jobContext.put("step_output" ,outList);
...
}
已开始乔布斯看起来像这样:
<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。
您对这个问题有什么建议吗?
由于