欢迎来到天天文库
浏览记录
ID:37899722
大小:39.50 KB
页数:5页
时间:2019-06-02
《quartz工作原理》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Quartz是一个大名鼎鼎的Java版开源定时调度器,功能强悍,使用方便。一、核心概念Quartz的原理不是很复杂,只要搞明白几个概念,然后知道如何去启动和关闭一个调度程序即可。1、Job表示一个工作,要执行的具体内容。此接口中只有一个方法voidexecute(JobExecutionContextcontext)2、JobDetailJobDetail表示一个具体的可执行的调度程序,Job是这个可执行程调度程序所要执行的内容,另外JobDetail还包含了这个任务调度的方案和策略。3、Trigger代表一个调度参数的配置,什么时候去调
2、。4、Scheduler代表一个调度容器,一个调度容器中可以注册多个JobDetail和Trigger。当Trigger与JobDetail组合,就可以被Scheduler容器调度了。二、一个最简单入门实例importorg.quartz.*;importorg.quartz.impl.StdSchedulerFactory;importjava.util.Date;/***quartz定时器测试**@authorleizhimin2009-7-238:49:01*/publicclassMyJobimplementsJob{public
3、voidexecute(JobExecutionContextjobExecutionContext)throwsJobExecutionException{System.out.println(newDate()+":doingsomething...");}}classTest{publicstaticvoidmain(String[]args){//1、创建JobDetial对象JobDetailjobDetail=newJobDetail();//设置工作项jobDetail.setJobClass(MyJob.class);jo
4、bDetail.setName("MyJob_1");jobDetail.setGroup("JobGroup_1");//2、创建Trigger对象SimpleTriggerstrigger=newSimpleTrigger();strigger.setName("Trigger_1");strigger.setGroup("Trigger_Group_1");strigger.setStartTime(newDate());//设置重复停止时间,并销毁该Trigger对象java.util.Calendarc=java.util.Ca
5、lendar.getInstance();c.setTimeInMillis(System.currentTimeMillis()+1000*1L);strigger.setEndTime(c.getTime());strigger.setFireInstanceId("Trigger_1_id_001");//设置重复间隔时间strigger.setRepeatInterval(1000*1L);//设置重复执行次数strigger.setRepeatCount(3);//3、创建Scheduler对象,并配置JobDetail和Tri
6、gger对象SchedulerFactorysf=newStdSchedulerFactory();Schedulerscheduler=null;try{scheduler=sf.getScheduler();scheduler.scheduleJob(jobDetail,strigger);//4、并执行启动、关闭等操作scheduler.start();}catch(SchedulerExceptione){e.printStackTrace();}//try{////关闭调度器//scheduler.shutdown(true);
7、//}catch(SchedulerExceptione){//e.printStackTrace();//}}}执行结果:当把结束时间改为://设置重复停止时间,并销毁该Trigger对象java.util.Calendarc=java.util.Calendar.getInstance();c.setTimeInMillis(System.currentTimeMillis()+1000*1L);strigger.setEndTime(c.getTime());执行结果:当添加一条关闭调度器的语句://4、并执行启动、关闭等操作sch
8、eduler.start();scheduler.shutdown(true);程序执行结果:ThuJul2310:11:50CST2009:doingsomething...Processf
此文档下载收益归作者所有