如何在Spring Batch中强制停止工作?

时间:2019-04-04 01:31:21

标签: java spring spring-batch

我有一个Web应用程序,可以定期创建作业。此网络应用程序在服务器上,可以正常运行。如果服务器崩溃然后重新启动,则JobExplorer表示作业仍在运行。但是实际上,工作永远不会停止,我必须自己停止工作。为此,我正在尝试使用JobOperator,有趣的是它说它无法停止未运行的作业。

要获取正在运行的作业的列表,请执行以下操作:

for (String jn : jobExplorer.getJobNames())             
   for (JobExecution je : jobExplorer.findRunningJobExecutions(jn)) {
        ...
    }

要停止工作:

try {
    jobOperator.stop(je.getId());
} catch (NoSuchJobExecutionException e1) {
    e1.printStackTrace();
} catch (JobExecutionNotRunningException e1) {
    e1.printStackTrace();
}

错误消息是“ JobExecution必须正在运行,以便可以停止”

je.isRunning()je.isStopping()均返回true。

0 个答案:

没有答案