Java Spring批处理执行最后一步,甚至得到异常

Java Spring批处理执行最后一步,甚至得到异常,java,spring,spring-batch,Java,Spring,Spring Batch,我想运行一个包含一组步骤的spring批处理作业,最后我想向redis发送一个包含作业执行状态的通知。假设所有步骤都执行了,我应该发送“Pass”。如果有任何执行或错误,我想通过“失败”。因此,我的最后一步将是通知redis更新状态,不管它是否完成良好或得到异常 我的问题是: 我能在春季批次中实现这一点吗 我可以使用通知吗 功能作为最后一步,或者我应该使用任何特定的方法 这个 我如何获得工作状态 我知道我可以获得如下工作状态: JobExecution execution = jobLaunc

我想运行一个包含一组步骤的spring批处理作业,最后我想向redis发送一个包含作业执行状态的通知。假设所有步骤都执行了,我应该发送“Pass”。如果有任何执行或错误,我想通过“失败”。因此,我的最后一步将是通知redis更新状态,不管它是否完成良好或得到异常

我的问题是:

  • 我能在春季批次中实现这一点吗
  • 我可以使用通知吗 功能作为最后一步,或者我应该使用任何特定的方法 这个
  • 我如何获得工作状态
  • 我知道我可以获得如下工作状态:

     JobExecution execution = jobLauncher.run(job, params);
     System.out.println("Exit Status : " + execution.getStatus());
    
    但是我在命令行中调用作业,比如
    java-jar app.jar----spring.batch.job.names=myjobnamehere
    ,这样我就不用JobExecution对象了。

    您可以使用。在
    afterJob
    方法中,您有一个对
    jobsecution
    的引用,您可以从中获取作业的状态,并根据需要发送通知

    您可以在中找到一个示例(请参见
    JobCompletionNotificationListener
    )。

    您可以使用。在
    afterJob
    方法中,您有一个对
    jobsecution
    的引用,您可以从中获取作业的状态,并根据需要发送通知


    您可以在(请参见
    JobCompletionNotificationListener
    )中找到一个示例。

    完美!谢谢!完美的谢谢!