所以我有这份工作。它有15个步骤。可以打开或关闭步骤,看它们是否会运行(基于客户端)。
决策者会根据是否选中该复选框来决定COMPLETED
或FAILED
。
问题在于我无法指定方法本身会发生什么。换句话说,我不能说在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>
...
答案 0 :(得分:0)
在我的情况下,当我尝试修改这样的步骤时,我收到了错误:
<step id="eodStep01PrintChartOfAccountsReport" next="eodStep02Decider">
<tasklet ref="printChartOfAccountsReportTasklet"/>
<next on="*" to="eodStep02Decider" />
</step>
我无法弄清楚原因。经过仔细检查和反思,我意识到了
next="eodStep02Decider"
是造成我问题的原因。一旦我删除它,然后让我把next="on"
放在步骤中,一切都很顺利。
很抱歉浪费任何人的时间。希望未来的其他人能够发现这一点并帮助他们。