http://static.springsource.org/spring-batch/reference/html/patterns.htmlから
11.7。入力が見つからない場合のステップ完了の処理
多くのバッチシナリオでは、処理するデータベースまたはファイルに行が見つからないことも例外ではありません。ステップは単に作業が見つからなかったと見なされ、0個のアイテムが読み取られて完了します。Spring Batchですぐに提供されるすべてのItemReader実装は、デフォルトでこのアプローチになっています。入力が存在する場合でも何も書き出されない場合、これは混乱を招く可能性があります。(これは通常、ファイルの名前が間違っている場合などに発生します)このため、メタデータ自体を調べて、フレームワークが処理されていることがわかった作業量を判断する必要があります。ただし、入力が見つからないことが例外的であると見なされた場合はどうなりますか?この場合、メタデータをプログラムでチェックして、処理されたアイテムがなく、障害が発生していないかどうかを確認するのが最善の解決策です。これは一般的なユースケースであるため、リスナーには次の機能のみが提供されます。
public class NoWorkFoundStepExecutionListener extends StepExecutionListenerSupport {
public ExitStatus afterStep(StepExecution stepExecution) {
if (stepExecution.getReadCount() == 0) {
return ExitStatus.FAILED;
}
return null;
}
}