package com.cavaness.quartzbook.chapter3;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SimpleTrigger;
import org.quartz.Trigger;
import org.quartz.impl.StdSchedulerFactory;
/**
* 编程式调度器
* @author Kevin
*
*/
public class Listing_4_9 {
private static Log log = LogFactory.getLog(Listing_3_5.class);
/**
* 创建,启动调度器
* @throws SchedulerException
*/
public void startScheduler() throws SchedulerException {
Scheduler scheduler = null;
try {
scheduler = StdSchedulerFactory.getDefaultScheduler();
} catch (SchedulerException e) {
log.error("调度器创建失败!", e);
throw e;
}
try {
scheduler.start();
} catch (SchedulerException e) {
log.error("调度器启动失败!", e);
throw e;
}
log.info("调度器启动时间:" + new SimpleDateFormat("yyyy.MM.dd HH:mm:ss").format(new Date()));
JobDetail printInfoJobDetail = new JobDetail("printInfoJob",
Scheduler.DEFAULT_GROUP, PrintInfoJob.class); // 为作业取名,分组
Trigger printInfoTrigger = new SimpleTrigger("printInfoTrigger", Scheduler.DEFAULT_GROUP, // 第三个参数表示开始时间,立即开始
new Date(), null, SimpleTrigger.REPEAT_INDEFINITELY, // 第四个参数表示结束时间,没有结束时间
60000);// 第五参数表示重复次数,不断重复(0,表示不重复,执行一次) 第六个参数表示时间间隔,1分钟执行一次
try {
scheduler.scheduleJob(printInfoJobDetail, printInfoTrigger);
} catch (SchedulerException e) {
log.error("关联作业和触发器失败!", e);
throw e;
}
}
public static void main(String[] args) throws SchedulerException {
Listing_4_9 listing_4_9 = new Listing_4_9();
try {
listing_4_9.startScheduler();
} catch (SchedulerException e) {
log.error("调度器初始化失败!", e);
throw e;
}
}
}
2.SimpleTrigger:编程式调度器
最新推荐文章于 2020-01-16 21:22:26 发布