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

09-25 18:36