如何删除 Quartz JDBC 商店中的作业?
How to remove job in 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);
}
我写这个方法是为了从 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);
}