- 44
- 0
- 约3.26千字
- 约 5页
- 2015-09-27 发布于重庆
- 举报
Quartz处理定时任务的核心概念
核心概念
1.Job:Job是任务执行的流程,是一个类
2.JobDetail:JobDetail是Job是实例,是一个对象,包含了该实例的执行计划和所需要的数据
3.Trigger:Trigger是定时器,决定任务何时执行
4.Scheduler:调度器,调度器接受一组JobDetail+Trigger即可安排一个任务,其中一个JobDetail可以关联多个Trigger
实例
1.初始化:
1
2 Scheduler?scheduler = StdSchedulerFactory.getDefaultScheduler();
scheduler.start(); 当程序退出时,应该主动调用shutdown()方法关闭该调度器。
2.Job:
一个Job类需要实现org.quartz.Job接口,这个接口值需要实现一个方法即可:
1 void execute(JobExecutionContext context)?throws JobExecutionException context是重要的上下文,可以访问到关联的JobDetail对象和本次触发的Trigger对象,以及在此之上设定的数据。
3.JobDetail:
可以使用JobBuilder来构建一个JobDetail对象:
1
2
3
4
5
6
7 JobDetail job = JobBuilder.newJob(MyJob.class) // MyJob是我实现的Job类
????.withIdentity(myjob) // 可以给该JobDetail起一个id,便于之后的检索
????.requestRecovery() // 执行中应用发生故障,需要重新执行
????.storeDurably() // 即使没有Trigger关联时,也不需要删除该JobDetail
????.usingJobData(key1, value1)
????.usingJobData(key2, value2) // 以Key-Value形式关联数据
????.build(); Quartz因为考虑到有些任务不是幂等的,不可以多次重复执行,所以默认没有开启“requestRecovery”。当确认业务中允许一次任务执行两次的情况下,可以开启该选项,则任务肯定不会因为应用停止而漏调用,但缺点就是,有可能会重复调用。
每个JobDetail内都有一个Map,包含了关联到这个Job的数据,在Job类中,可以通过context取出该数据,进行业务流程处理。
4.Trigger:
可以使用TriggerBuilder来构建一个Trigger对象:
1
2
3
4
5
6
7
8 Trigger trigger = TriggerBuilder.newTrigger()
????.forJob(myjob) // 关联上述的JobDetail
????.withIdentity(myjob-trigger1) // 给该Trigger起一个id
????.startAt(DateBuilder.futureDate(20, IntervalUnit.SECOND)) // 延迟20秒开始
????.withSchedule(SimpleScheduleBuilder.repeatMinutelyForever()) // 每分钟触发一次,无限循环
????.usingJobData(key3, value3)
????.usingJobData(key4, value4) // 以Key-Value形式关联数据
????.build(); 5.设定:
因为上述的Trigger已经关联了JobDetail,可以使用
1 scheduler.scheduleJob(trigger); 把这一组JobDetail和Trigger加载到调度器上,接下来就会按照计划执行Job任务。
6.配置文件:
配置文件不是必须的,Quartz对配置项都是有默认值的,当需要自定义的时候,可以在classpath路径下放一个quartz.properties文件,Quartz的StdSchedulerFactory在启动时会自动加载该配置文件。
比较值得关注的是这两个配置项:
1
2 org.quartz.threadPool.threadCount=50
org.quartz.scheduler.batchTriggerAcquisitionMaxCount=50 第一个配置项是线程池里的线程数,默认值是10,当执行任务会并发执行多个耗时任务时,要根据业务特点选择线程池的大小。
第二个配置是,当检查某个Trigger应该触发时,默认每次只Acquire一个Trigg
您可能关注的文档
- Kacsuk Analysis and Improvement of the Variable Binding Scheme in LOGFLOW.pdf
- KDP晶体单点金刚石切削加工表层力学性能的研究.pdf
- KDP晶体单点金刚石车削表面形貌分形分析.pdf
- KDP晶体生长工艺研究.pdf
- KDP晶体生长过程中溶液稳定性的研究.pdf
- KDP晶体电光效应.doc
- kk一热液金矿床原生叠加晕的理想模式李惠(.pdf
- KeYongJianResearchTrendOfPPPinConstructionJournals.pdf
- KPCA和RSVM结合处理大规模问题研究.pdf
- LabVIEW调用MATLAB进行图像处理的实现.pdf
- 2025年全国演出经纪人员资格认定考试试卷带答案(研优卷).docx
- 2025年全国演出经纪人员资格认定考试试卷完整版.docx
- 2025年全国演出经纪人员资格认定考试试题库及完整答案.docx
- 2025年全国演出经纪人员资格认定考试试卷完美版.docx
- 2025年全国演出经纪人员资格认定考试试卷含答案(实用).docx
- 2025年全国演出经纪人员资格认定考试试卷及答案(各地真题).docx
- 2025年下半年内江市部分事业单位公开考试招聘工作人员(240人)备考题库附答案.docx
- 2025年全国演出经纪人员资格认定考试试卷及答案1套.docx
- 2025年下半年四川成都市郫都区面向社会引进公共类事业单位人员2人备考题库最新.docx
- 2025年下半年内江市部分事业单位公开考试招聘工作人员(240人)备考题库附答案.docx
原创力文档

文档评论(0)