2.1.7 定時任務管理類



import static org.quartz.JobBuilder.newJob;  
import static org.quartz.TriggerBuilder.*;
import static org.quartz.CronScheduleBuilder.*;




import org.quartz.CronTrigger;
import org.quartz.Job;
import org.quartz.JobDetail;
import org.quartz.JobKey;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SchedulerFactory;
import org.quartz.TriggerKey;
import org.quartz.impl.StdSchedulerFactory;




  
/** 
 * 定時任務管理類 
 * 
 */  
public class QuartzManager {  

private static SchedulerFactory gSchedulerFactory = new StdSchedulerFactory();
private static String JOB_GROUP_NAME = "CPDS_JOBGROUP";
private static String TRIGGER_GROUP_NAME = "CPDS_TRIGGERGROUP";
public static String JOB_NAME_PRE = "JOB";

/**
 * 添加job
 * 2014-3-25 shan
 * 
 * @param jobName
 * @param className
 * @param timeExp
 * @throws ClassNotFoundException 
 * @throws SchedulerException 
 */
public static void addJob(String jobName,String className,String timeExp) throws ClassNotFoundException, SchedulerException{
addJob(jobName,JOB_GROUP_NAME,className,timeExp,jobName,TRIGGER_GROUP_NAME);
}
/**
 * 
 * 2014-3-25 shan
 * 添加job
 * @param jobName:job名稱
 * @param jobGroup:job羣組
 * @param className:job擴展執行類
 * @param timeExp:運行時間表達式
 * @param triggerName:觸發器名稱
 * @param triggerGroup:觸發器羣組
 */
@SuppressWarnings("unchecked")
public static void addJob(String jobName,String jobGroup,String className,String timeExp,
                                 String triggerName,String triggerGroup) throws ClassNotFoundException, SchedulerException{
        Scheduler scheduler = gSchedulerFactory.getScheduler();
     
        Class<? extends Job> cls = (Class<? extends Job>)Class.forName(className);
JobDetail job = newJob(cls).withIdentity(jobName, jobGroup).build();
job.getJobDataMap().put("id", jobName);

CronTrigger trigger = newTrigger()
.withIdentity(triggerName, triggerGroup)
.startNow()
.withSchedule(cronSchedule(timeExp))
.build();

scheduler.scheduleJob(job, trigger);

}
/**
 * 運行job
 * 2014-3-25 shan
 * @throws SchedulerException 
 * 
 */
public static void startJob() throws SchedulerException{
System.out.println("=============== job計劃任務調度器啓動 =================");
Scheduler scheduler = gSchedulerFactory.getScheduler();
scheduler.start();
}
/**
 * 
 * 2014-3-25 shan
 * 修改job運行時間參數
 * @param triggerName:觸發器名稱
 * @param timeExp:時間表達式
 */
public static void updateJobTime(String triggerName,String timeExp) throws SchedulerException{
updateJobTime(triggerName,TRIGGER_GROUP_NAME,timeExp);
}
/**
 * 
 * 2014-3-25 shan
 * 修改job運行時間參數
 * @param triggerName:觸發器名稱
 * @param trigerGroup:觸發器羣組
 * @param timeExp:時間表達式
 * @throws SchedulerException 
 */
public static void updateJobTime(String triggerName,String trigerGroup,String timeExp) throws SchedulerException{
Scheduler scheduler = gSchedulerFactory.getScheduler();
CronTrigger oldTrigger = (CronTrigger) scheduler.getTrigger(new TriggerKey(triggerName,trigerGroup));
if(oldTrigger.getCronExpression().equals(timeExp))
return;
CronTrigger newTrigger = newTrigger()
.withIdentity(triggerName, trigerGroup)
.startNow()
.withSchedule(cronSchedule(timeExp))
.build();
scheduler.rescheduleJob(oldTrigger.getKey(), newTrigger);
}
/**
 * 
 * 2014-3-25 shan
 * 刪除job
 * @param jobName:job名稱
 * @throws SchedulerException 
 */
public static void deleteJob(String jobName) throws SchedulerException{
deleteJob(jobName,JOB_GROUP_NAME);
}
/**
 * 
 * 2014-3-25 shan
 * 刪除job
 * @param jobName:job名稱
 * @param jobGroup:job羣組
 * @throws SchedulerException 
 */
public static void deleteJob(String jobName,String jobGroup) throws SchedulerException{
Scheduler scheduler = gSchedulerFactory.getScheduler();
scheduler.deleteJob(new JobKey(jobName,jobGroup));
}
/**
 * 
 * 2014-3-25 shan
 * 停止job
 * @throws SchedulerException
 */
public static void shutDown() throws SchedulerException{
System.out.println("=============== job計劃任務調度器關閉 =================");
Scheduler scheduler = gSchedulerFactory.getScheduler();
scheduler.shutdown(true);
}
   

}  

以上是quartz-2.1.7的工具類 與1.6.5的工具類是不同的  


發佈了5 篇原創文章 · 獲贊 10 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章