spring batch中控制step的走向

1、顺序执行step:

<job id="job">
    <step id="stepA" parent="s1" next="stepB" />
    <step id="stepB" parent="s2" next="stepC"/>
    <step id="stepC" parent="s3" />
</job>

2、分支执行:

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

当用xml配置文件的时候,on属性可以使用通配符来表达step的返回状态。目前,只支持两种符号:*和?。

  • "*" 匹配0个或者多个字符

  • "?" 只能匹配1个字符

比如, "c*t"匹配"cat"和"count",但是"c?t"只能匹配"cat",不能匹配 "count"。

3、BatchStatus VS ExitStatus

1)BatchStatus是一个enum类型,包括:

COMPLETED, STARTING, STARTED, STOPPING, STOPPED, FAILED, ABANDONED, UNKNOWN

而ExitStatus是一个普通类,可以是任意返回值,主要有以下几个:

UNKNOWN,EXECUTING,COMPLETED,NOOP,FAILED,STOPPED

2)当用xml配置文件的时候,next元素表示的是ExitStatus

3)当用java代码的时候,on方法表示的还是ExitStatus

原文地址:https://www.cnblogs.com/nizuimeiabc1/p/9669973.html