Spring batch Spring批处理:子步骤依赖于多个父步骤

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"&

在Spring Batch中,我们可以创建一个依赖于其他步骤的步骤,如:

<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->C

C步骤将在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建议的分割流的一个例子。