java - 如何在 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。
解决方案
推荐阅读
- python - 从列表中过滤掉任何值。这段代码是如何工作的?
- hyperledger-fabric - 隐式策略评估失败 - 满足 0 个子策略,但该策略需要满足 1 个“作家”子策略
- python - 将带有参数的函数应用于数据帧
- android - 不可转换的类型;无法将 'android.support.v4.app.Fragment' 转换为 'com.google.android.gms.maps.SupportMapFragment
- python - 计算前缀字符串的所有出现次数
- reactjs - 加载 Reactjs 引导样式
- mysql - MYSQL:如何自动删除表中依赖于另一个表中的记录的行
- python - TypeErorr:“张量”对象不能解释为整数
- c++ - 在将 OpenCV Mat 图像投射到 QImage 时警告使用旧式投射?
- python - 如何在循环中执行聚类