0
Springバッチが成功したかどうか、または終了ステータスが表示されていれば、呼び出し元を知りたいです。System.exit(1)from Spring batch
SpringApplication app = new SpringApplication(Foo.class);
app.setWebEnvironment(false);
ConfigurableApplicationContext ctx= app.run(args);
SimpleJobLauncher jobLauncher = ctx.getBean(SimpleJobLauncher.class);
Job job = ctx.getBean("Foo", Job.class);
JobParameters jobParameters = new JobParametersBuilder().toJobParameters();
try {
//test
JobExecution jobExec = jobLauncher.run(job, jobParameters);
if(ExitStatus.FAILED.equals(jobExec.getExitStatus())){
System.exit(1);
}catch(JobExecutionAlreadyRunningException | JobRestartException | JobInstanceAlreadyCompleteException
| JobParametersInvalidException e) {
logger.error("Exception in Foo"+e,e);
System.exit(-1);
}
しかし、プログラムは呼び出し元に値を戻していません。私はUnixスクリプトからプログラムを起動しています.UNIXプロセスは実行中です。
jobLauncher.run(ジョブ、jobParameters)。すぐに呼び出し元に戻ってジョブがまだ実行されているので、完了した実行を待つ必要があります –
ええ、ジョブが完了するのを待つ方法でコード化されています。しかし、ここでの問題はSystem.exit(1)です。コントローラーを呼び出し元に戻していません。このプロセスはUnixで稼働し続けます。 – Deepak
あなたはそれをデバッグしましたか?条件が満たされず(exitStatus = FAILED)、System.exit(-1)が機能しない場合は、少なくとも他のステータス条件に反応するelseブランチが必要です。 –