spring批处理配置中的依赖关系树

spring批处理配置中的依赖关系树,spring,spring-batch,Spring,Spring Batch,具有spring作业定义: <job id="footballJob"> <!-- Step bean details ommitted for clarity --> <step id="playerload" next="gameLoad"/> <step id="gameLoad" next="playerSummarization"/> <step id="playerSummarization"/&g

具有spring作业定义:

<job id="footballJob">
    <!-- Step bean details ommitted for clarity -->
    <step id="playerload" next="gameLoad"/>
    <step id="gameLoad" next="playerSummarization"/>
    <step id="playerSummarization"/>
</job>


我能否以编程方式计算出要执行的步骤的顺序?

步骤将按照您在示例中列出的顺序执行

如果您想指定订单,您可以执行以下操作:

<job id="job">
    <step id="stepA" parent="s1" next="stepB" />
    <step id="stepB" parent="s2" next="stepC"/>
    <step id="stepC" parent="s3" />
</job>
<job id="job">
    <step id="stepA" parent="s1">
        <next on="*" to="stepB" />
        <next on="FAILED" to="stepC" />
    </step>
    <step id="stepB" parent="s2" next="stepC" />
    <step id="stepC" parent="s3" />
</job>
在作业配置中,“决策”标记将指定要使用的决策者以及所有转换:

<job id="job">
    <step id="step1" parent="s1" next="decision" />

    <decision id="decision" decider="decider">
        <next on="FAILED" to="step2" />
        <next on="COMPLETED" to="step3" />
    </decision>

    <step id="step2" parent="s2" next="step3"/>
    <step id="step3" parent="s3" />
</job>

<beans:bean id="decider" class="com.MyDecider"/>

编辑

如果您希望获得一个
依赖关系图
,您可以使用它来可视化流程,下面是一个示例

我能以编程方式计算出执行步骤的顺序吗

从字面上理解你的问题有一些选择:

  • 使用afaik它可以显示作业流
  • 自己解析job.xml,甚至可以使用spring批处理作业,这将非常有趣
  • 尝试摸索完整的批量设置过程,从开始,您可以根据需要覆盖它
    • 应该足够了

我将使用一个简单的xml解析器

谢谢,但问题是我如何以编程方式确定步骤的顺序(或者换句话说,我对依赖关系图感兴趣)
<job id="job">
    <step id="step1" parent="s1" next="decision" />

    <decision id="decision" decider="decider">
        <next on="FAILED" to="step2" />
        <next on="COMPLETED" to="step3" />
    </decision>

    <step id="step2" parent="s2" next="step3"/>
    <step id="step3" parent="s3" />
</job>

<beans:bean id="decider" class="com.MyDecider"/>