Spring boot 应用程序启动后如何继续中断的批处理作业
我的批处理任务是由最终用户触发的,所以当应用程序使用spring.batch.job.enabled=false启动时,我不想执行所有批处理作业 但我希望有一个解决方案来处理以下情况Spring boot 应用程序启动后如何继续中断的批处理作业,spring-boot,spring-batch,Spring Boot,Spring Batch,我的批处理任务是由最终用户触发的,所以当应用程序使用spring.batch.job.enabled=false启动时,我不想执行所有批处理作业 但我希望有一个解决方案来处理以下情况 当应用程序启动时,spring batch可以继续执行因应用程序重新启动或异常中断而中断的批处理作业。通过提交具有相同作业参数的相同作业,恢复spring batch中失败/中断的作业 因此,假设使用DB存储作业元数据,则可以执行以下操作重新提交失败的作业 通过连接BATCH_JOB_实例和BATCH_JOB_执行
当应用程序启动时,spring batch可以继续执行因应用程序重新启动或异常中断而中断的批处理作业。通过提交具有相同作业参数的相同作业,恢复spring batch中失败/中断的作业 因此,假设使用DB存储作业元数据,则可以执行以下操作重新提交失败的作业 通过连接BATCH_JOB_实例和BATCH_JOB_执行表,找出未完成作业执行的所有作业实例 查找上述每个未完成作业实例的最新批处理作业执行情况,并从批处理作业执行参数中查找相应的作业参数 使用批处理作业实例中的作业名称和批处理作业执行参数中的作业参数重新提交作业
请看一下我现有的问题。我已经对重新启动您的作业的代码提出了疑问。该代码的唯一缺点是,所有未完成的步骤都将从头开始,并且从一开始就停止了。总之,程序员必须对这些逻辑进行编码。@SabirKhan ThanksI相信有更简单的方法从JobOperator等处检索类似的信息。您可以看一看您是对的。JobOperator可用于重新启动已停止的作业。问题是,它是从停止的点重新启动作业,还是从一开始就将作业视为新提交的过程?为什么不尝试一下呢如果您使用相同的作业参数提交,它通常会从失败的地方开始。是的,尝试过。它实际上恢复停止的作业。JobOperator所需要的只是唯一的executionId,所以API非常简单,工作非常好。@alexanoid我认为这是不可能的。这完全违背了Spring Batch的设计