Spring batch Spring批处理:子步骤依赖于多个父步骤
在Spring Batch中,我们可以创建一个依赖于其他步骤的步骤,如:Spring batch Spring批处理:子步骤依赖于多个父步骤,spring-batch,Spring Batch,在Spring Batch中,我们可以创建一个依赖于其他步骤的步骤,如: <batch:job id="firstJob"> <batch:step id="firstStep" next="secondStep"> <batch:tasklet ref="firstTasklet"/> </batch:step> <batch:step id="secondStep"&
<batch:job id="firstJob">
<batch:step id="firstStep" next="secondStep">
<batch:tasklet ref="firstTasklet"/>
</batch:step>
<batch:step id="secondStep">
<batch:tasklet ref="secondTasklet"/>
</batch:step>
</batch:job>
在我的例子中,我们有如下所示的依赖关系,只有当A(父)和B(父)都完成时,任务C(子)才需要执行:
在Spring Batch中,我们是否可以这样说:
<batch:job id="firstJob">
<batch:step id="A,B" next="C">
<batch:tasklet ref="firstTasklet"/>
</batch:step>
...
</batch:job>
...
我想到的是在A和B上使用侦听器,并在数据库中跟踪这两个侦听器。当两个侦听器都被执行时,可以调用任务C
请帮忙
注意:我使用的是Spring Batch版本:2.1.9-RELEASE,如果上述要求在更高版本上可用,我也可以更新版本。您可以使用“next”
标记定义链的次数,以便:
<batch:step id="A" next="B">
<batch:tasklet ref="firstTasklet"/>
</batch:step>
<batch:step id="B" next="C">
<batch:tasklet ref="secondTasklet"/>
</batch:step>
<batch:step id="C">
<batch:tasklet ref="thirdTasklet"/>
</batch:step>
链是:A->B->CC步骤将在B之后执行,可能不再有用,但:
<job id="job1">
<split id="split1" task-executor="taskExecutor" next="stepC">
<flow>
<step id="stepA" parent="stepA" />
</flow>
<flow>
<step id="stepB" parent="stepB"/>
</flow>
</split>
<step id="stepC" parent="stepC"/>
</job>
一旦A和B执行了,C就会执行
Luca,谢谢,但A和B步骤是独立的。如果A和B是独立的,我认为你必须按照中的描述分割流,我知道这只是Luca建议的分割流的一个例子。