同様の問題に関連するいくつかの投稿を確認しました。シェルスクリプトを介してスプリングバッチアプリケーションを呼び出し、終了ステータスを取得しています。実行が成功すると、すべてが正常に機能します。ExitStatus は 0 として設定されます。ただし、データベース エラーが発生した場合 (データベース エラーを作成するために、データベースの間違ったポートを指定した場合)、ExitStatus は空として返されます。コードは以下です
以下の投稿を参照し、同様に実装しました
例外がスローされた場合、ゼロ以外のコードでスプリング バッチ ジョブを終了させる
Spring バッチ リターン カスタム プロセス終了コード
シェル スクリプト: java -jar $JOBDIR/lib/feed*.jar
result=$?
echo $result
ジャワ:
public static void main(String[] args) {
ConfigurableApplicationContext context
=SpringApplication.run(App.class, args);
int exitCode = SpringApplication.exit(context);
System.out.print("Exit code is" + exitCode);
System.exit(exitCode);
}
@Primary
@Bean(destroyMethod = "")
public DataSource dataSource() throws Exception {
return BatchDataSource.create(url, user, password);
}
データベース エラーの場合、メイン メソッド System.exit(exitCode) の最後に到達していません。何が間違っているのか教えてもらえますか??