并行执行中的作业上下文[Spring Batch]

时间:2015-04-03 17:27:49

标签: spring-batch

我正在使用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。

您对这个问题有什么建议吗?

由于

0 个答案:

没有答案