| 注册
请输入搜索内容

热门搜索

Java Linux MySQL PHP JavaScript Hibernate jQuery Nginx
RegPoate
10年前发布

Quartz2.x增、删、改工具类

Quartz2.x增、删、改工具类
</div>

 

[Java]代码    

package com.a2563;    import static org.quartz.CronScheduleBuilder.cronSchedule;  import static org.quartz.JobBuilder.newJob;  import static org.quartz.TriggerBuilder.newTrigger;    import org.apache.logging.log4j.Logger;  import org.quartz.Job;  import org.quartz.JobDetail;  import org.quartz.JobKey;  import org.quartz.Scheduler;  import org.quartz.SchedulerException;  import org.quartz.Trigger;  import org.quartz.TriggerKey;  import org.quartz.impl.StdSchedulerFactory;  /**   * 类名:QuartzManager <br/>   * 功能:<br/>   * 详细:Quartz增、删、改工具类 <br/>   * 作者: Tliu <br/>   * 日期:2015-7-17 <br/>   */  public class QuartzUtils {     private Logger log = null;     private Scheduler scheduler = null;      public static final String DATA_KEY = "STATE_DATA";      public QuartzUtils (){    try {     log = org.apache.logging.log4j.LogManager.getLogger();     scheduler = new StdSchedulerFactory().getScheduler();     log.info("初始化调度器 ");    } catch (SchedulerException ex) {     log.error("初始化调度器=> [失败]:" + ex.getLocalizedMessage());    }   }    public void addJob(String name, String group, Class<? extends Job> clazz,String cronExpression) {         try {       //构造任务     JobDetail job = newJob(clazz)       .withIdentity(name, group)            .build();          //构造任务触发器     Trigger trg = newTrigger()          .withIdentity(name, group)          .withSchedule(cronSchedule(cronExpression))          .build();            //将作业添加到调度器     scheduler.scheduleJob(job, trg);     log.info("创建作业=> [作业名称:" + name + " 作业组:" + group + "] ");    } catch (SchedulerException e) {     e.printStackTrace();     log.error("创建作业=> [作业名称:" + name + " 作业组:" + group + "]=> [失败]");    }   }      public void removeJob(String name, String group){    try {     TriggerKey tk = TriggerKey.triggerKey(name, group);     scheduler.pauseTrigger(tk);//停止触发器       scheduler.unscheduleJob(tk);//移除触发器     JobKey jobKey = JobKey.jobKey(name, group);     scheduler.deleteJob(jobKey);//删除作业     log.info("删除作业=> [作业名称:" + name + " 作业组:" + group + "] ");    } catch (SchedulerException e) {     e.printStackTrace();     log.error("删除作业=> [作业名称:" + name + " 作业组:" + group + "]=> [失败]");    }   }      public void pauseJob(String name, String group){    try {     JobKey jobKey = JobKey.jobKey(name, group);     scheduler.pauseJob(jobKey);     log.info("暂停作业=> [作业名称:" + name + " 作业组:" + group + "] ");    } catch (SchedulerException e) {     e.printStackTrace();     log.error("暂停作业=> [作业名称:" + name + " 作业组:" + group + "]=> [失败]");    }   }      public void resumeJob(String name, String group){    try {     JobKey jobKey = JobKey.jobKey(name, group);        scheduler.resumeJob(jobKey);     log.info("恢复作业=> [作业名称:" + name + " 作业组:" + group + "] ");    } catch (SchedulerException e) {     e.printStackTrace();     log.error("恢复作业=> [作业名称:" + name + " 作业组:" + group + "]=> [失败]");    }     }      public void modifyTime(String name, String group, String cronExpression){      try {     TriggerKey tk = TriggerKey.triggerKey(name, group);     //构造任务触发器     Trigger trg = newTrigger()          .withIdentity(name, group)          .withSchedule(cronSchedule(cronExpression))          .build();       scheduler.rescheduleJob(tk, trg);     log.info("修改作业触发时间=> [作业名称:" + name + " 作业组:" + group + "] ");    } catch (SchedulerException e) {     e.printStackTrace();     log.error("修改作业触发时间=> [作业名称:" + name + " 作业组:" + group + "]=> [失败]");    }   }     public void start() {    try {     scheduler.start();     log.info("启动调度器 ");    } catch (SchedulerException e) {     e.printStackTrace();     log.error("启动调度器=> [失败]");    }   }     public void shutdown() {    try {     scheduler.shutdown();     log.info("停止调度器 ");    } catch (SchedulerException e) {     e.printStackTrace();     log.error("停止调度器=> [失败]");    }   }  }