通过 JobOperator 停止 JobInstance

Stopping JobInstance through JobOperator

我正在尝试停止从托管 bean 执行一项作业。更具体地说,我能够按如下方式获取作业实例并停止作业实例:

        JobOperator operator  = BatchRuntime.getJobOperator();
        List<Long> re = operator.getRunningExecutions("JobName");
        for (Long runningExecution: re) {
            operator.stop(runningExecution);
        } 

即便如此,它继续运行并不影响实例的执行。事实上,如果我再次尝试获取作业实例是不可能的,因为有效方法 getRunningExecutions return 没有元素。以这种方式,谁能告诉我我做错了什么?

提前致谢。

getRunningExecutions returns 空,因为作业执行可能处于停止状态,因此不再考虑 运行 执行。

尝试在每次作业执行时调用 getBatchStatus() 以检查确切的批处理状态。如果您当前的步骤是 batchlet 类型的步骤,那么 batchlet class 应该实现 stop() 方法以正确停止工作。