我们正尝试使用api停止当前正在运行的作业,该API会检查当前正在运行的作业,并使用执行ID停止该工作。
jobOperator.stop(jobExecution.getId());
现在,作业有多个步骤。 很少有步骤被配置为Tasklet。 触发api停止作业时(正在执行Tasklet时),该作业实际上并未停止。 但是要说我们触发了api来停止作业(该步骤具有读取器,处理器和写入器),在这种情况下,作业将被Job中断,并被步骤执行中断,这是需要的。 但是只有将步骤配置为任务集时才有问题。
我们还尝试实现StoppableTasklet,但不确定如何识别作业是否已停止以及如何在 stop 替代方法内执行必要的操作?