Spring作业在步骤Exception上失败,但我不希望它

时间:2013-07-26 18:41:29

标签: spring-batch

所以我有这份工作。它有15个步骤。可以打开或关闭步骤,看它们是否会运行(基于客户端)。

决策者会根据是否选中该复选框来决定COMPLETEDFAILED

问题在于我无法指定方法本身会发生什么。换句话说,我不能说在FAIL上,转到tasklet中的第3步。因此,如果我的任何步骤tasklet抛出异常,则整个工作失败。我希望只有个别步骤失败。这可能吗?

<job id="regularEndOfDay" parent="jobParent" xmlns="http://www.springframework.org/schema/batch">
<decision id="eodStep01Decider" decider="eodDecider01">
   <next on="COMPLETED" to="eodStep01PrintChartOfAccountsReport"/>
   <next on="FAILED" to="eodStep02Decider"/>
</decision>
<step id="eodStep01PrintChartOfAccountsReport" next="eodStep02Decider">
   <tasklet ref="printChartOfAccountsReportTasklet"/>
</step>
<decision id="eodStep02Decider" decider="eodDecider02">
   <next on="COMPLETED" to="eodStep02PrintListOfEmployeeGoals"/>
   <next on="FAILED" to="eodStep03Decider"/>
</decision>
<step id="eodStep02PrintListOfEmployeeGoals" next="eodStep03Decider">
   <tasklet ref="printListOfEmployeeGoalsTasklet"/>
</step>
...

1 个答案:

答案 0 :(得分:0)

在我的情况下,当我尝试修改这样的步骤时,我收到了错误:

<step id="eodStep01PrintChartOfAccountsReport" next="eodStep02Decider">
   <tasklet ref="printChartOfAccountsReportTasklet"/>
   <next on="*" to="eodStep02Decider" />
</step>

我无法弄清楚原因。经过仔细检查和反思,我意识到了

next="eodStep02Decider"

是造成我问题的原因。一旦我删除它,然后让我把next="on"放在步骤中,一切都很顺利。

很抱歉浪费任何人的时间。希望未来的其他人能够发现这一点并帮助他们。