Quartz 项目应用笔记

Quartz 项目应用笔记

ID:37900460

大小:70.50 KB

页数:10页

时间:2019-06-02

Quartz 项目应用笔记_第1页
Quartz 项目应用笔记_第2页
Quartz 项目应用笔记_第3页
Quartz 项目应用笔记_第4页
Quartz 项目应用笔记_第5页
资源描述:

《Quartz 项目应用笔记》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Quartz项目应用笔记Quartz是一个强大的企业级Schedule工具,也是目前最好的开源Schedule工具,最近因为项目的需要,简单的用到了Quartz的一些功能,对项目中使用Quartz的一些问题做简单的记录。在Quartz的应用中,我们用到了以下的一些东西,ScheduleFactory,Scheduler,Job,JobDetail,Trigger,简单说明一下他们的用途。SchedulerFactory是Scheduler的工厂,我们可以从中获得受工厂管理的Scheduler对象。SchedulerFactoryscheduleFactory=newStdScheduler

2、Factory();Schedulerscheduler=scheduleFactory.getScheduler();Scheduler是一个计划集,其中可以包含多个JobDetail和Trigger组成的计划任务。我们可以从SchedulerFactory中取得Scheduler。接口Job是每个业务上需要执行的任务需要实现的接口,该接口只有一个方法:publicinterfaceJob{publicvoidexecute(JobExecutionContextcontext)throwsJobExecutionException;}我们可以在里面定义我们的Job执行逻辑,比如清除过期

3、数据,更新缓存等。JobDetail描述了一个任务具体的信息,比如名称,组名等等。JobDetailjobDetail=newJobDetail("SayHelloWorldJob",Scheduler.DEFAULT_GROUP,SayHelloWorldJob.class);在上面的构造方法中,第一个是任务的名称,第二个是组名,第三个就是实际当任务需要执行的回调类。Trigger顾名思义就是触发器,Quartz有个很好的想法就是分离了任务和任务执行的条件。Trigger就是控制任务执行条件的类,当Trigger认为执行条件满足的时刻,Trigger会通知相关的Job去执行。分离的好处是

4、:1.你可以为某个Job关联多个Trigger,其中任何一个条件满足都可以触发job执行,这样可以完成一些组合的高级触发条件2.当Trigger失效后(比如:一个永远都不能满足的条件),你不必去声明一个新的job,代替的是你可以为job关联一个新的Trigger让job可以继续执行。目前的Quartz实现中,存在两种Trigger,SimpleTrigger和CronTrigger,SimpleTrigger用来完成一些比如固定时间执行的任务,比如:从现在开始1分钟后等等;而CronTrigger(没错,和unix的cron进程的含意一样)用来执行calendar-like的任务,比如:每

5、周五下午3:00,每月最后一天等等。在我们项目中,都是一些固定时间的Job,所以只用到了SimpleTrigger。Triggertrigger=newSimpleTrigger("SayHelloWorldJobTrigger",Scheduler.DEFAULT_GROUP,newDate(),null,0,0L);这个构造方法中,第一个是Trigger的名称,第二个是Trigger的组名,第三个是任务开始时间,第四个是结束时间,第五个是重复次数(使用SimpleTrigger.REPEAT_INDEFINITELY常量表示无限次),最后一个是重复周期(单位是毫秒),那么这样就创建了一

6、个立刻并只执行一次的任务。但我们定义好了JobDetail,Job,和Trigger后,就可以开始Schedule一个Job了。scheduler.scheduleJob(jobDetail,trigger);这条语句就是把job和Trigger关联,这样当Trigger认为应该触发的时候就会调用(实际上是Scheduler调用)job.execute方法了。scheduler.start();千万别忘了加上上面的语句,这条语句通知Quartz使安排的计划生效。关于execute方法的参数JobExecutionContextJobExecutionContext就和很多Context结尾

7、的类功能一样,提供的运行时刻的上下文环境,JobExecutionContext中有Scheduler,JobDetail,Trigger等很多对象的引用,从而当你在execute方法内部须需要这些对象的时刻提供的便利。在项目中,我们把需要执行的Job相对应的一些信息放在JobExecutionContext中,在Job执行的时候可以调用。jobDetail.getJobDataMap().put(userid,id);

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。