JVM崩溃后如何重新启动Jobs?

当我的JVM崩溃或系统出现故障时,我正在运行许多在Spring Batch框架中实现的Jobs。失败后如何重新启动这些作业?

最佳答案

基本上,您可以执行以下操作:

  • 在您的应用程序上下文中配置JobExplorer工厂bean:
  • 在您的应用程序上下文中配置JobOperator bean
  • 查询jobExplorer以获取不同的作业名称:jobExplorer.getJobNames()
  • 对于步骤(3)中的每个作业,请向jobExplorer查询未完成的作业:jobExplorer.findRunningJobExecutions(String jobName)
  • 对于步骤(4)中的每个JobExecution,调用:jobOperator.restart(jobExecution.getJobId())
  • 在启动任何其他作业之前,请确保在启动顺序期间调用此过程

  • 从技术上讲,可以通过覆盖findRunningJobExecutions()合并JobExecutionDao之类的步骤3 + 4,但当前的API不支持它。

    有关上述Spring bean配置的帮助,请查阅reference documentation

    关于JVM崩溃后的Spring Batch,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15461040/

    10-10 04:10