QuartzJob 類:創建job類,實現org.quartz.job接口類,並實現execute方法。
package com.pgw.quartz; import java.util.Date; import org.quartz.Job; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; public class QuartzJob implements Job { @Override public void execute(JobExecutionContext arg0) throws JobExecutionException { System.out.println("hello world !!!!"+new Date()); } }
QuartzCronTrigger 類:創建crontrigger類,繼承CronTrigger類,實現 Serializable接口
package com.pgw.quartz; import java.io.Serializable; import org.quartz.CronTrigger; public class QuartzCronTrigger extends CronTrigger implements Serializable { /** * */ private static final long serialVersionUID = -9078011008686279425L; public QuartzCronTrigger(){ } public void setCronExpress(String corn,String name,String groupName){ try { this.setCroncorn); this.setName(name); this.setGroup(groupName); } catch (Exception e) { e.printStackTrace(); } } }
QuartzMain 類
1、如果Scheduler沒有設置名稱,通過scheduler = factory.getDefaultScheduler();獲取的Scheduler對象名稱爲DefaultQuartzScheduler。
2、Quartz可以設置一個Scheduler,然後在這個Scheduler下配置多對trigger和job度對象。
package com.pgw.quartz; import org.quartz.CronTrigger; import org.quartz.JobDetail; import org.quartz.Scheduler; import org.quartz.impl.StdSchedulerFactory; public class QuartzMain{ public static void main(String[] args) { // 創建一個jobDetail對象,將Job實際業務類放入jobDetail中 JobDetail jobDetail = new JobDetail("demo", "demo", QuartzJob.class); // 創建一個觸發器 CronTrigger triggers = new CronTrigger("demo", "demo"); //CronTrigger ctrigger = new CronTrigger("smSendTaskSduling", "smSendTaskSduling"); try { // 設置觸發器 名字 // triggers.setName("demo"); // 設置觸發器所屬組 //triggers.setGroup("demo"); // 設置觸發時間cron表達式 triggers.setCronExpression("0 * 13 * * ?"); // 將jobDetail放入觸發器中 // triggers.setJobGroup("demo"); // 創建schedulerFactory對象 StdSchedulerFactory factory = new StdSchedulerFactory(); Scheduler scheduler = factory.getDefaultScheduler(); // Register the JobDetail and Trigger scheduler.scheduleJob(jobDetail, triggers); // 掛起定時線程 scheduler.start(); }catch(Exception ex){ ex.printStackTrace(); } } }