Quartz使用(2) - Quartz核心接口Scheduler、Job
2017-07-09 16:53
267 查看
quartz的核心接口如下:
StdSchedulerFactory用于创建Scheduler,其依赖于一系列的属性来决定如何产生Scheduler。可以通过四种途径向StdSchedulerFactory提供属性配置信息。
1) 通过java.util.Properties实例提供
View Code
可见 @PersistJobDataAfterExecution的作用在于持久化保存在JobDataMap中的传递参数,使得多次执行Job,可以获取传递参数的状态信息。
接口 | 含义 |
Scheduler | scheduler的主要API接口 |
Job | 任务实现接口,期望调度器能够执行 |
JobDetail | 用于定义Job实例 |
Trigger | 调度器基于特定时间来执行指定任务的组件 |
JobBuilder | 用于定义、创建JobDetail实例 |
TriggerBuilder | 用于定义、创建Trigger实例 |
1. Scheduler
一个调度器的生命周期为通过SchedulerFactory创建,直到执行其shutdown()方法。当Scheduler创建之后,可以进行增加、删除及显示任务Job与触发器Trigger,并且执行其他的调度相关的操作,如暂停一个触发器Trigger。需要注意的是,直到调用start()方法时,Scheduler才正式开始执行job和trigger。StdSchedulerFactory用于创建Scheduler,其依赖于一系列的属性来决定如何产生Scheduler。可以通过四种途径向StdSchedulerFactory提供属性配置信息。
1) 通过java.util.Properties实例提供
2017-07-09 16:40:58 [INFO]-[org.ws.quartz.test1.SimpleQuartzExample] init scheduler componets 2017-07-09 16:40:59 [INFO]-[org.ws.quartz.test1.SimpleQuartzExample] execute scheduler 2017-07-09 16:40:59 [INFO]-[org.ws.quartz.test1.HelloWorldJob] count: 0 2017-07-09 16:41:08 [INFO]-[org.ws.quartz.test1.HelloWorldJob] count: 0 2017-07-09 16:41:18 [INFO]-[org.ws.quartz.test1.HelloWorldJob] count: 0 2017-07-09 16:41:19 [INFO]-[org.ws.quartz.test1.SimpleQuartzExample] shut down scheduler
View Code
可见 @PersistJobDataAfterExecution的作用在于持久化保存在JobDataMap中的传递参数,使得多次执行Job,可以获取传递参数的状态信息。
3.3 @DisallowConcurrentExecution
quartz中另一个常用的注解为@DisallowConcurrentExecution,该注解可以同一个时刻,同一个任务只能执行一次,不能并行执行两个或多个同一任务。但需要注意的是,多个不同的任务是可以同时执行的。相关文章推荐
- Quartz使用(3) - Quartz核心接口Trigger
- org.quartz.Job接口的java类(作业类)
- Quartz学习(二)--Quartz 框架核心接口
- 通过Job,Trigger,Scheduler看Quartz2.x作业调度框架
- Quartz使用问题: 如何将被Spring管理的类注入到不被Spring管理的Job类中
- Quartz Scheduler(2.2.1) - Usage of JobDataMap
- Quartz.net官方开发指南 第十课: 配置、资源使用以及SchedulerFactory
- 任务调度框架Quartz(二) 使用job、trigger、schedule调用定时任务
- Core Graphics框架是Quartz的核心,也是内容描画的基本接口。
- Quartz Enterprise Job Scheduler 1.x Tutorial---转载
- quartz2.2源码分析2-scheduler初始化及使用
- 好记性不如烂博客之 Quartz How-To: Initializing Job Data With Scheduler Initialization
- Quartz入门实例3-使用CronTrigger指定触发器执行job
- oracle定时任务dbms_job与dbms_scheduler使用方法
- Spring+Hibernate+Struts2整合Quartz, JOB中无法使用Spring注入
- Quartz.NET – .Net平台作业调度组件(Enterprise Job Scheduler for .NET Platform)
- Spring中使用Quartz的2种方法(extends QuartzJobBean与使用MethodInvokingJobDetailFactoryBean)
- 任务调度(Quartz Enterprise Job Scheduler)
- 深入解读Quartz的原理(创建Scheduler对象容器,并配置JobDetail和Trigger对象;配置强大时间调度策略,可以研究专门的CronTrigger )
- quartz的JobExecutionContext 使用