我写了这种方法从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);
}