首页 > 解决方案 > 如何删除 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 表中删除。我究竟做错了什么。我只想从调度程序中完全删除这个作业

标签: javaspringquartz-scheduler

解决方案


您是否在创建工作时定义了工作组?然后您可能需要调用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);
}

推荐阅读