设为首页 加入收藏

TOP

整合Spring和Quartz Scheduler
2014-11-24 14:41:17 来源: 作者: 【 】 浏览:6
Tags:整合 Spring Quartz Scheduler

首先认识明确几个关于Quartz Scheduler的概念。


调度器:负责对用户定义的所有任务进行调度的类。


触发器:触发器在逻辑上包含两个属性,即如何触发该调度器和触发该调度器之后进行怎么样的操作,在Quartz Scheduler中触发器的触发事件为特定时间。时间可以为一个时间段,也可以为时间点。


任务(jobDetail:触发器在被触发后进行的操作,可以指定任意一个类的某个方法。触发器被触发之后将调用该类的指定方法。



spring.jar包中包含了对Quartz Scheduler进行操作的类:


1. org.springframework.scheduling.quartz.SchedulerFactoryBean


该类负责在spring容器中创建调度器。其最重要的属性有triggers,这是一个List定义了该调度器负责调度的所有触发器。还有一个属性为autoStartup,该类指定是否在spring构造该类完成之后开始执行调度。一般设置为true


2. org.springframework.scheduling.quartz.CronTriggerBean


该类负责在spring容器中创建一个触发器,该类的ID应该在某个SchedulerFactoryBean属性的List中被引用,这样这个触发器才能保证被某个指定调度器调度。在该类中应该指定两个属性,触发规则(cronExpression)和触发要执行任务(jobDetail)。触发规则(cronExpression)是一个指定规则的字符串,指定了在什么时候触发该触发器。在下文中介绍,jobDetail属性配置为一个MethodInvokingJobDetailFactoryBeanMethodInvokingJobDetailFactoryBean负责生成任务类。


3. org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean


该类负责生成具体的任务,其实任务非常简单,只需要指定某个对象的某个方法即可,在触发器触发时,即调用指定对象的指定方法。



代码示例


spring配置文件



用于测试的类:



下面介绍如何在spring中定义触发器的生成规则:


生成规则cronExpression属性是一个空格隔开的字符串,每个部分分别标识指定的时间的秒,分,时,日,月,周几,年属性。先看一个表格



字符释义


”字符:表示不确定的值


,”字符:指定数个值


-”字符:指定一个值的范围


/”字符:指定一个值的增加幅度。n/m表示从n开始,每次增加m


L”字符:用在日表示一个月中的最后一天,用在周表示该月最后一个星期X


W”字符:指定离给定日期最近的工作日(周一到周五)


#”字符:表示该月第几个周X6#3表示该月第3个周五



Cron表达式范例:


每隔5秒执行一次:*/5 * * * *


每隔1分钟执行一次:0 */1 * * *


每天23点执行一次:0 0 23 * *


每天凌晨1点执行一次:0 0 1 * *


每月1号凌晨1点执行一次:0 0 1 1 *


每月最后一天23点执行一次:0 0 23 L *


每周星期天凌晨1点实行一次:0 0 1 * L


26分、29分、33分执行一次:0 26,29,33 * * *


每天的0点、13点、18点、21点都执行一次:0 0 0,13,18,21 * *


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Linux下使用C语言编写获取某个域.. 下一篇jQuery联动下拉菜单

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: