管理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);//删除任务  
	   }  
	

}

你可能感兴趣的:(管理Quarz的工具类,QuarzManager)