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