我试图阻止来自托管bean的一个作业执行。更具体地说,我能够获取作业实例并停止作业实例,如下所示:
JobOperator operator = BatchRuntime.getJobOperator();
List<Long> re = operator.getRunningExecutions("JobName");
for (Long runningExecution: re) {
operator.stop(runningExecution);
}
即便如此,它仍然不会继续运行实例的执行。事实上,如果我尝试再次获取作业实例,则不可能,因为有效方法getRunningExecutions不返回任何元素。通过这种方式,谁能告诉我我做错了什么?
提前谢谢。
答案 0 :(得分:0)
getRunningExecutions
返回空,因为作业执行可能处于STOPPING状态,因此不再考虑运行执行。
尝试在每个作业执行时调用getBatchStatus()
以检查确切的批处理状态。如果当前步骤是批处理类型步骤,则batchlet类应实现stop()
方法以正确停止工作。