| 注册
请输入搜索内容

热门搜索

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

Quartz2.x增、删、改工具类

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("停止调度器=> [失败]");          }      }  }
来自:http://my.oschina.net/u/1859292/blog/504225