第一代定时任务系统上线用了大概半年之后,就被我们厌倦了。于是就规划了第二代定时任务系统。
第二代定时任务系统
第二代调度系统主要解决的是,避免每次修改定时任务的执行时间都需要重新启动整个项目。另外也可支持单独重新调度单个定时任务。
我们做了一个请求入口,当更新了库表里面的数据之后,重新请求一下特定的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(); }
网友评论