第一代定时任务系统上线用了大概半年之后,就被我们厌倦了。于是就规划了第二代定时任务系统。

第二代定时任务系统

第二代调度系统主要解决的是,避免每次修改定时任务的执行时间都需要重新启动整个项目。另外也可支持单独重新调度单个定时任务。

我们做了一个请求入口,当更新了库表里面的数据之后,重新请求一下特定的url就会自动重新加载定时任务。

使用scheduler删除定时任务

public void reScheduler() throws Exception {    // 取消现有的任务
    String[] jobNames = quartzUtil.getJobNames();    if (null != jobNames && jobNames.length > 0) {        for (String jobName : jobNames) {
            logger.info("----开始移除任务:" + jobName);
            quartzUtil.cancelJob(jobName);
            logger.info("----成功移除任务:" + jobName);
        }
    }
    logger.info("现有任务已全部取消");    this.initScheduler();
}
        		

网友评论