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("停止調度器=> [失敗]"); } } }
本文由用戶 RegPoate 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!