如果多步批处理中出现步骤失败,控制台上会显示步骤失败消息。还有BATCH_STATUS就是COMPLETED和EXIT_STATUS是FAILED.
Q.1 如何更改EXIT_STATUS为COMPLETED?
Q.2 是否有可能不在控制台中显示失败消息
示例代码
<job id="someJob" xmlns="http://www.springframework.org/schema/batch"
restartable="true" parent="baseJob">
<step id="aStep">
<job ref="aJob" />
<next on="*" to="bStep"/>
</step>
<step id="bStep" parent="aStep" next="cStep">
<job ref="bJob"/>
</step>
<step id="cStep" parent="bStep">
<job ref="cJob"/>
</step>
</job>
<job id="aJob" xmlns="http://www.springframework.org/schema/batch"
restartable="true" parent="baseJob">
<step id="aJobStep">
<tasklet ref="aJobTasklet" />
</step>
</job>
<job id="bJob" xmlns="http://www.springframework.org/schema/batch"
restartable="true" parent="baseJob">
<step id="bJobStep">
<tasklet ref="bJobTasklet" />
</step>
</job>
<job id="cJob" xmlns="http://www.springframework.org/schema/batch"
restartable="true" parent="baseJob">
<step id="cJobStep">
<tasklet ref="cJobTasklet" />
</step>
</job>
Run Code Online (Sandbox Code Playgroud)
如果 StepaStep作业失败someJob(aStep已抛出一些SQLException)。然后someJob继续执行。但成功完成后cStep,BATCH_STATUSfor someJobis COMPLETEDbut EXIT_STATUS= FAILED。也BATCH_STATUS和EXIT_STATUS其他步骤如下。
Step Name BATCH_STATUS EXIT_STATUS
aStep FAILED FAILED
bStep COMPLETED COMPLETED
cStep COMPLETED COMPLETED
Run Code Online (Sandbox Code Playgroud)
Spring Batch 有两种状态。第一个是BatchStatus。此状态由一组预定义的值组成,框架使用这些值来指示事物的状态。另一个是ExitStatus。这ExitStatus为开发人员提供了提供用例特定状态消息的能力。
在执行作业时,Spring Batch 无法让您覆盖BatchStatus. 这是设计使然。但是,ExitStatus允许在多个位置(通常是像StepExecutionListener和 之类的侦听器JobExecutionListener)设置 ,以便可以解释框架的结果以满足您的用例。
如果您想在ExitStatus通常表示作业或步骤失败时指示成功,您将实现适当的侦听器并相应地设置ExitStatus。
| 归档时间: |
|
| 查看次数: |
22162 次 |
| 最近记录: |