0

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

决策者决定COMPLETEDFAILED基于复选框是否已被选中以使其运行。

问题是我无法指定方法本身会发生什么。换句话说,我不能说失败,请转到 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>
...
4

1 回答 1

0

好吧,就我而言,当我尝试像这样修改步骤时遇到错误:

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

我不知道为什么。经过仔细检查和反思,我意识到

next="eodStep02Decider"

是什么导致了我的问题。一旦我删除它,它就让我把它放在next="on"步骤中,一切都很好。

很抱歉在此浪费任何人的时间。希望未来的其他人能找到这个并帮助他们。

于 2013-07-26T19:14:19.453 回答