管理Quarz的工具類,QuarzManager
package com.test.quarz;import java.text.ParseException;
import org.quartz.CronTrigger; import org.quartz.Job; import org.quartz.JobDetail; import org.quartz.Scheduler; import org.quartz.SchedulerException; import org.quartz.SchedulerFactory; import org.quartz.Trigger; import org.quartz.impl.StdSchedulerFactory;
public class QuarzManager {
private static SchedulerFactory sf = new StdSchedulerFactory(); private static String JOB_GROUP_NAME = "jobGroup1"; private static String TRIGGER_GROUP_NAME = "triggerGroup1"; /** *//** * 添加一個定時任務,使用默認的任務組名,觸發器名,觸發器組名 * @param jobName 任務名 * @param job 任務 * @param time 時間設置,參考quartz說明文檔 * @throws SchedulerException * @throws ParseException */ public static void addJob(String jobName,Job job,String time) throws SchedulerException, ParseException{ Scheduler sched = sf.getScheduler(); JobDetail jobDetail = new JobDetail(jobName, JOB_GROUP_NAME, job.getClass());//任務名,任務組,任務執行類 //觸發器 CronTrigger trigger = new CronTrigger(jobName, TRIGGER_GROUP_NAME);//觸發器名,觸發器組 trigger.setCronExpression(time);//觸發器時間設定 sched.scheduleJob(jobDetail,trigger); //啟動 if(!sched.isShutdown()) sched.start(); } /** *//** * 添加一個定時任務 * @param jobName 任務名 * @param jobGroupName 任務組名 * @param triggerName 觸發器名 * @param triggerGroupName 觸發器組名 * @param job 任務 * @param time 時間設置,參考quartz說明文檔 * @throws SchedulerException * @throws ParseException */ public static void addJob(String jobName,String jobGroupName, String triggerName,String triggerGroupName, Job job,String time) throws SchedulerException, ParseException{ Scheduler sched = sf.getScheduler(); JobDetail jobDetail = new JobDetail(jobName, jobGroupName, job.getClass());//任務名,任務組,任務執行類 //觸發器 CronTrigger trigger = new CronTrigger(triggerName, triggerGroupName);//觸發器名,觸發器組 trigger.setCronExpression(time);//觸發器時間設定 sched.scheduleJob(jobDetail,trigger); if(!sched.isShutdown()) sched.start(); } /** *//** * 修改一個任務的觸發時間(使用默認的任務組名,觸發器名,觸發器組名) * @param jobName * @param time * @throws SchedulerException * @throws ParseException */ public static void modifyJobTime(String jobName,String time) throws SchedulerException, ParseException{ Scheduler sched = sf.getScheduler(); Trigger trigger = sched.getTrigger(jobName,TRIGGER_GROUP_NAME); if(trigger != null){ CronTrigger ct = (CronTrigger)trigger; ct.setCronExpression(time); sched.resumeTrigger(jobName,TRIGGER_GROUP_NAME); } } /** *//** * 修改一個任務的觸發時間 * @param triggerName * @param triggerGroupName * @param time * @throws SchedulerException * @throws ParseException */ public static void modifyJobTime(String triggerName,String triggerGroupName, String time) throws SchedulerException, ParseException{ Scheduler sched = sf.getScheduler(); Trigger trigger = sched.getTrigger(triggerName,triggerGroupName); if(trigger != null){ CronTrigger ct = (CronTrigger)trigger; //修改時間 ct.setCronExpression(time); //重啟觸發器 sched.resumeTrigger(triggerName,triggerGroupName); } } /** *//** * 移除一個任務(使用默認的任務組名,觸發器名,觸發器組名) * @param jobName * @throws SchedulerException */ public static void removeJob(String jobName) throws SchedulerException{ Scheduler sched = sf.getScheduler(); sched.pauseTrigger(jobName,TRIGGER_GROUP_NAME);//停止觸發器 sched.unscheduleJob(jobName,TRIGGER_GROUP_NAME);//移除觸發器 sched.deleteJob(jobName,JOB_GROUP_NAME);//刪除任務 } /** *//** * 移除一個任務 * @param jobName * @param jobGroupName * @param triggerName * @param triggerGroupName * @throws SchedulerException */ public static void removeJob(String jobName,String jobGroupName, String triggerName,String triggerGroupName) throws SchedulerException{ Scheduler sched = sf.getScheduler(); sched.pauseTrigger(triggerName,triggerGroupName);//停止觸發器 sched.unscheduleJob(triggerName,triggerGroupName);//移除觸發器 sched.deleteJob(jobName,jobGroupName);//刪除任務 }
}</pre>
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!