我正在编写一个批处理应用程序,当我的应用程序逻辑识别出问题并返回时,我想在其中立即设置退出状态。

例如,我正在作者的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"));

    }

}

10-04 20:09