2.SimpleTrigger:编程式调度器

来源:互联网 发布:在线直播源码 编辑:程序博客网 时间:2024/05/17 01:15
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;}}}