0
複数のステップを持つ1つのメインスプリングバッチジョブがあります。そのジョブが何らかの理由で失敗した場合は、別のジョブを呼び出してデータベース内のテーブルを失敗結果で更新する必要があります。元のジョブが失敗した場合、別のスプリングバッチジョブを実行します。
これを行うにはどうすればバッチフローを設定できますか?
は、私はそうのようなJobExecutionを作成したが、私は、if/else文のいずれかから新規ジョブを呼び出す方法がわからない:@Bean
public JobExecutionListener dataListener() {
JobCompletionNotificationListener dataNotificationListener = new JobCompletionNotificationListener(new JdbcTemplate(dataDataSource));
dataNotificationListener.afterJob(jobExecution());
return dataNotificationListener;
}
@Bean
public JobExecution jobExecution() {
JobExecution jobExecution = new JobExecution(jobExecution());
if (jobExecution.getStatus() == BatchStatus.COMPLETED) {
// If job completed successfully, update current job log to success
} else if (jobExecution.getStatus() == BatchStatus.FAILED) {
// If job failed, update current job log to failure
}
return jobExecution;
}
ItemWriterが例外をスローし、終了コードでバッチ処理を終了したときに使用できます。終了コードが到着したら、あなたのものでデータベースにデータを保存します。 – Rajesh
リスナーafterJob()を使用します。 afterJobメソッド()でジョブの状態を確認してロジックを実行できます。 –