0

だから私はこの仕事をしています。15段あります。ステップは、(クライアントに基づいて) 実行するかどうかに関して、オンまたはオフにすることができます。

ディサイダーは、実行するチェックボックスが選択されているかどうかに基づいてCOMPLETEDorを決定します。FAILED

問題は、メソッド自体で何が起こるかを指定できないことです。つまり、タスクレット内でステップ 3 に進んでください。したがって、ステップ タスクレットのいずれかが例外をスローすると、ジョブ全体が失敗します。個々のステップのみが失敗するようにします。これは可能ですか?

<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 に答える