java - 如何删除 Quartz JDBC Store 中的作业?
问题描述
我写了这个方法来从 Quartz JDBC 中删除一个作业
public boolean removeJob(String jobName) {
try {
JobKey jobKey = JobKey.jobKey(jobName);
try {
Scheduler sched = schedulerFactoryBean.getScheduler();
logger.info("RESULT: " + sched.deleteJob(jobKey));
} catch (Exception e) {
throw new RuntimeException(e);
}
return true;
} catch (Exception ex) {
logger.error(ex.getMessage());
return false;
}
}
deleteJob
总是回来false
。因此,该作业不会从 mysql 的 JDBC 表中删除。我究竟做错了什么。我只想从调度程序中完全删除这个作业
解决方案
您是否在创建工作时定义了工作组?然后您可能需要调用jobKey(jobName, group)
. 您还可以使用scheduler.checkExists(jobKey)
有利于调试的方法检查作业是否存在。
JobKey jobKey = jobKey(jobName, group);
if (scheduler.checkExists(jobKey)) {
logger.info("job found with key: {}", jobKey);
scheduler.deleteJob(jobKey);
}
推荐阅读
- php - PHP检查一个值是否是具有共同差异的数字序列的一部分
- git - Git:在 git clone 中包含文件但忽略对它的任何本地更改?
- android - 可以使用 Camera2 API 指定任意目标 fps 范围吗?
- angular - 如何将 Angular 6 应用程序与 Drupal 8 模块集成
- python-3.x - 可以重复最后一个条目的加入列表
- css - 如何使用 vue 创建动态网格?
- javascript - 使用 javascript 捕获音频数据
- javascript - 使用 javascript 获取锚标记 URL
- google-app-engine - 在总共处理 4330 个请求后,超过 243 MB 的软内存限制为 307 MB。考虑在 app.yaml 中设置更大的实例类
- sas - 为每个组只保留最高排名的观察的有效方法