我正在编写一个批处理应用程序,当我的应用程序逻辑识别出问题并返回时,我想在其中立即设置退出状态。
例如,我正在作者的write方法中设置以下状态。
stepExecution.getJobExecution().setExitStatus(ExitStatus.FAILED);
尽管执行了上述语句,但在日志中出现以下消息,并且退出代码似乎成功。
“批量执行成功!”
我可以知道如何正确设置退出代码吗?
设置步骤后有一些方法。
喜欢:
@AfterStep
public ExitStatus afterStep(){
//Test condition
return new ExistStatus("CUSTOM EXIT STATUS");
}
但是我不想持久使用退出状态并在上述方法中设置退出状态。
最佳答案
您应该正确拦截job execution-
public void afterJob(JobExecution jobExecution){
if( jobExecution.getStatus() == BatchStatus.COMPLETED ){
jobExecution.setExitStatus(new ExitStatus("CUSTOM SUCCESS STATUS"));
} else if(jobExecution.getStatus() == BatchStatus.FAILED){
jobExecution.setExitStatus(new ExitStatus("CUSTOM FAILURE STATUS"));
}
}