如何在Quartz JDBC Store中删除作业?

时间:2018-12-04 22:48:11

标签: java spring quartz-scheduler

我编写了此方法以从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表中删除。我究竟做错了什么。我只想从调度程序中完全删除此作业

1 个答案:

答案 0 :(得分:1)

您是否在创建工作期间定义了工作组?然后,您可能需要致电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);
}