【问题标题】:Spring batch execute last step even get an exceptionSpring批处理执行最后一步甚至出现异常
【发布时间】:2019-12-04 20:00:11
【问题描述】:

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

我的问题是:

  1. 我可以在 Spring Batch 中实现这一点吗?
  2. 我可以使用通知吗 作为最后一步,或者我应该使用任何特定方法 这?
  3. 如何获取作业状态?

我知道我可以得到这样的工作状态:

 JobExecution execution = jobLauncher.run(job, params);
 System.out.println("Exit Status : " + execution.getStatus());

但我在java -jar app.jar ----spring.batch.job.names=myjobnamehere 之类的命令行中调用该作业,这样我就不会使用 JobExecution 对象。

【问题讨论】:

    标签: java spring spring-batch


    【解决方案1】:

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

    您可以在getting started guide 中找到示例(请参阅JobCompletionNotificationListener)。

    【讨论】:

    • 完美!非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-19
    • 1970-01-01
    • 1970-01-01
    • 2016-10-11
    • 2017-06-27
    • 2016-06-29
    • 1970-01-01
    相关资源
    最近更新 更多