public class SchedulerTest { public static void main(String[] args) { //建立schedulerFactory类 SchedulerFactory schedulerfactory=new StdSchedulerFactory(); Scheduler scheduler=null; try{ //第一步:经过schedulerFactory获取一个调度器 scheduler=schedulerfactory.getScheduler(); //第二步:建立jobDetail实例,绑定Job实现类 //指明job的名称,所在组的名称,以及绑定job类--这里是要定时执行的那个类,须要实现org.quartz.Job接口 JobDetail job=JobBuilder.newJob(MyJob.class)
.withIdentity("job1", "jgroup1").build(); //第三步:定义调度触发规则: //规则一:使用simpleTrigger规则--通常用于循环执行 /* Trigger trigger=TriggerBuilder.newTrigger()
.withIdentity("simpleTrigger", "triggerGroup")
//间隔时间 .withSchedule(SimpleScheduleBuilder.repeatSecondlyForever(1)
.withRepeatCount(8)) //运行次数 .startNow().build(); */ //规则二:使用cornTrigger规则 天天10点42分 --通常由用于定时执行 Trigger trigger=TriggerBuilder.newTrigger()
.withIdentity("simpleTrigger", "triggerGroup")
//这个规则下面解释 .withSchedule(CronScheduleBuilder.cronSchedule("0 42 10 * * ? *")) .startNow().build(); //第四步:把做业和触发器注册到任务调度中 scheduler.scheduleJob(job, trigger); //最后第五步:启动调度 scheduler.start(); }catch(Exception e){ e.printStackTrace(); } } }
规则一用的是SimpleScheduleBuilder去设置,主要设置2个参数间隔时间和运行次数maven
1.间隔时间的设置方法以下:ui
能够按照毫秒,秒 ,分钟,小时去配置;spa
2.运行次数的设置方法以下:.net
withRepeatCount()设置任务须要执行的总次数。3d
下边那个repeatForever()这个方法单独说一下,这个方法会把repeatCount设置为-1,意思是一致循环下去。code
3.间隔时间和运行次数一块儿设置:blog
这些方法看方法名字差很少就知道什么意思了,好比repeatMinutelyForever(10) 每隔10分钟,一致循环执行下去。接口
这些方法内部基本调用的是前面2个方法,具体解释点进去看注释吧。get
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.2.1</version>
</dependency>it
参考文章:http://blog.csdn.net/yuebinghaoyuan/article/details/9045471