Spring集成Quartz定时任务 推荐
2014-01-15 16:36
375 查看
Spring最大的能耐之一就是提供对流行框架的无缝集成,Quartz作为Java实现的工业标准级别的定时任务调度器,Spring对其提供了无缝的集成,并大大简化了开发工作,这是使用Spring比较爽的地方之一。
一个任务调度器最基本的三个元素是
Job(or Task):需要定时处理的事情
Trigger: 事件触发时间点(一次性的、固定周期性的、像Linux Cron Jobs 灵活配置的)
Scheduler: 调度器
Job与Trigger是一对一的关系,Scheduler与Trigger是一对多的关系。
先看一个Spring配置这三个元素的示例:
Quartz提供两种Trigger,一是SimpleTrigger提供周期性定时触发器,Spring的对工厂类为SimpleTriggerFactoryBean(注:SimpleTriggerBean不支持Quartz2以上版本,已经被SimpleTriggerFactoryBean替代);一是CronTrigger提供像Linux Cron Jobs那样的复杂触发器,触发时间点使用Cron表达式定义,Cron表达式语法可以参考Quartz官方文档,Spring的对应工厂类为CronTriggerFactoryBean(注:CronTriggerBean不支持Quartz2以上版本,已经被CronTriggerFactoryBean替代)。
Quartz的Scheduler对应类为Scheduler,Spring对应工厂类为SchedulerFactoryBean。
附:完整路径类名列表
配置完作业调度的基本三要素后我们只需要开发Task类,如示例中的FixedRateTask类,而与Quartz集成的事情Spring全部搞定了,马上下载并运行示例代码试试吧!
Spring同时提供对Quartz的TriggerListener和JobListener的支持,这类似AOP编程,可以在任务执行前后进行检查等工作,通过简单的属性配置可实现。
附件:http://down.51cto.com/data/2363993
一个任务调度器最基本的三个元素是
Job(or Task):需要定时处理的事情
Trigger: 事件触发时间点(一次性的、固定周期性的、像Linux Cron Jobs 灵活配置的)
Scheduler: 调度器
Job与Trigger是一对一的关系,Scheduler与Trigger是一对多的关系。
先看一个Spring配置这三个元素的示例:
<bean id="fixedRateTask" class="com.stevex.demo.FixedRateTask"></bean> <bean id="fixedTimeTask" class="com.stevex.demo.FixedTimeTask"></bean> <bean id="job1" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <property name="targetObject" ref="fixedRateTask"> </property> <property name="targetMethod" value="doSth"></property> </bean> <bean id="job2" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <property name="targetObject" ref="fixedTimeTask"> </property> <property name="targetMethod" value="doSth"></property> </bean> <bean id="simpleTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean"> <property name="jobDetail" ref="job1" /> <property name="startDelay" value="0" /> <property name="repeatInterval" value="60000" /> </bean> <bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean"> <property name="jobDetail" ref="job2" /> <property name="cronExpression" value="0 2 15 * * ?" /> </bean> <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <property name="triggers"> <list> <ref bean="simpleTrigger" /> <ref bean="cronTrigger" /> </list> </property> </bean>Quartz的Job对应类为JobDetail,Spring为简化开发提供了工厂包装类MethodInvokingJobDetailFactoryBean类,当然开发人员还是可以自己实现JobDetail的,可以简单通过继承QuartzJobBean实现。MethodInvokingJobDetailFactoryBean类有concurrent属性默认值为true,即作业可并发调度,可以将其设置为false如果不允许作业被并发调度。
Quartz提供两种Trigger,一是SimpleTrigger提供周期性定时触发器,Spring的对工厂类为SimpleTriggerFactoryBean(注:SimpleTriggerBean不支持Quartz2以上版本,已经被SimpleTriggerFactoryBean替代);一是CronTrigger提供像Linux Cron Jobs那样的复杂触发器,触发时间点使用Cron表达式定义,Cron表达式语法可以参考Quartz官方文档,Spring的对应工厂类为CronTriggerFactoryBean(注:CronTriggerBean不支持Quartz2以上版本,已经被CronTriggerFactoryBean替代)。
Quartz的Scheduler对应类为Scheduler,Spring对应工厂类为SchedulerFactoryBean。
附:完整路径类名列表
org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean org.springframework.scheduling.quartz.QuartzJobBean org.springframework.scheduling.quartz.SimpleTriggerFactoryBean org.springframework.scheduling.quartz.SimpleTriggerBean org.springframework.scheduling.quartz.CronTriggerFactoryBean org.springframework.scheduling.quartz.CronTriggerBean org.springframework.scheduling.quartz.SchedulerFactoryBean
配置完作业调度的基本三要素后我们只需要开发Task类,如示例中的FixedRateTask类,而与Quartz集成的事情Spring全部搞定了,马上下载并运行示例代码试试吧!
Spring同时提供对Quartz的TriggerListener和JobListener的支持,这类似AOP编程,可以在任务执行前后进行检查等工作,通过简单的属性配置可实现。
附件:http://down.51cto.com/data/2363993
相关文章推荐
- 推荐一款Java基于最新Spring 4.2.5 集成Quartz 2.2.2 任务调度定时器界面配置版
- 推荐一款Java基于最新Spring 4.2.5 集成Quartz 2.2.2 任务调度定时器界面配置版
- Spring集成Quartz定时任务框架介绍和Cron表达式详解
- Spring集成Quartz定时任务框架介绍和Cron表达式详解
- spring集成定时任务框架 Quartz的两种方式
- Spring集成Quartz定时任务框架介绍和Cron表达式详解
- Spring Boot集成持久化Quartz定时任务管理和界面展示
- (十七)Spring 集成Quartz
- springMVC + myatis + quartz分布式集成问题
- 定时任务(Spring与Quartz使用)
- Java spring +quartz实现定时任务
- Spring与quartz集成后的定时任务工厂类
- Spring集成Quartz定时任务的一些问题
- Spring2.0集成Quartz1.5.2调度框架
- spring和Quartz 集成
- Quartz与spring2.0集成备忘录
- Spring集成Quartz定时任务框架介绍和Cron表达式详解
- Spring Boot集成持久化Quartz定时任务管理和界面展示
- spring和quartz的集成
- quartz系列(一)spring3.2.5与quartz1.8.6单机版集成详细说明