`

Spring CronTrigger

阅读更多

quartz的触发器CronTriggerBean 配置 

一个Quartz的CronTrigger表达式分为七项子表达式,其中每一项以空格隔开,从左到右分别是:秒,分,时,月的某天,月,星期的某天,年;其中年不是必须的,也就是说任何一个表达式最少需要六项!

例:0 0 12 ? * WED 表示每个星期三的12点执行,这里没有“年”这项!


字段名(项)  必须  值范围  特殊字符 

秒 是 0-59  , - * /  

分 是 0-59  , - * /  

时 是 0-23  , - * /  

月的某天  是 1-31  , - * ? / L W  

月 是 1-12 or JAN-DEC  , - * /  

星期的某天 是 1-7 or SUN-SAT  , - * ? / L #  

年 否 empty, 1970-2099  , - * /

先看示列:"0 0/30 8-10 5,20 * ?" 表示“每个月的5日和20日的8:00,8:30,9:00,9:30,10:00,10:30”

字符解释:

,:与,表式","两边的值都是需要执行的时间,如上例"5,20",每个月的5日与20日。

-:表示值的范围,如上例"8-10",从8点开始到10结束,包括8点与10点。

*:表式任意可合法的值,如上例"*"是处于月份的字段,所以代表1-12中的任意值,所以上例是指“每个月”。

/:增量,如上例是指从0分开始,每过30分钟取一次值。如果换成"5/8"就是从第5钟开始每过8分钟取一次值:8:05,8:13,8:21,8:29等等

?:不指定值,就是“我也不知道”的意思,只能出现在“月的某天,星期的某天”项中。在什么情况下用呢?如上例如果指定值为星期一,那么可能会出现如4月5日不是星期一,这里就是不对应,有冲突,所以指定为"?",也就是说我也不知道是星期几,只要是5日与20日就行了,至于是星期几我才不管呢!

L:最后的,last的意思,只能出现在“月的某天,星期的某天”项中。表示当前月或当前星期的最后一天,注意的是星期的最后一天为星期六。

W:月中最接近指定日期的普通日(星期一到星期五),只能出现在“月的某天”,如"15W"就是说当前月最接近15日的普通日,如果当月的15是星期三就是星期三,如果当月的15是星期六那么就是昨天也就是星期五,如果当月的15是星期天则为第二天也就是星期一。

#:当前月的第N个星期X日,只能出现在“星期的某天”项中。如"6#3"就是说当前月的第三个星期五,注意"1-7",1=星期天,2=星期一 等等。

 

 

以下是实际项目中的配置样例:

<bean id="feeEndorseTransfer" class="cn.com.service.FeeEndorseTransfer">

</bean>

<bean id="feeEndorseToCore"

class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">

<!--实际调用类-->

<property name="targetObject" ref="feeEndorseTransfer" />

<!--实际调用方法-->

<property name="targetMethod" value="feeEndorseTransfer" />

</bean>

   <!-- 触发器 -->

<bean id="feeEndorseToCoreTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">

<property name="jobDetail">

<ref bean="feeEndorseToCore" />

</property>

<property name="cronExpression">

<value>0 0 * * * ?</value>

</property>

</bean>

<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">

<property name="triggers">

<list>

<ref local="feeEndorseToCoreTrigger" />

</list>

</property>

</bean>

http://www.eshow365.cn

 

分享到:
评论

相关推荐

    CronTrigger

    spring quartz定时器的表达式

    spring定时任务配置

    spring定时任务SimpleTrigger 和CronTrigger 配置

    Spring.3.x企业应用开发实战(完整版).part2

    13.2.3 使用CronTrigger 13.2.4 使用Calendar 13.2.5 任务调度信息存储 13.3 在Spring中使用Quartz 13.3.1 创建JobDetail 13.3.2 创建Trigger 13.3.3 创建Scheduler 13.4 Spring中使用JDK Timer 13.4.1 Timer和...

    spring 定时器

    spring-2.0.6.jar Spring框架的核心包 jta.jar 会用到包中的usertransaction,具体什么用此处暂时不论 quartz-1.6.0.jar 会用到CronTrigger这个类,通过表达式实现精确的定时 commons-logging-1.1.1.jar 日志管理包 ...

    Spring3.x企业应用开发实战(完整版) part1

    13.2.3 使用CronTrigger 13.2.4 使用Calendar 13.2.5 任务调度信息存储 13.3 在Spring中使用Quartz 13.3.1 创建JobDetail 13.3.2 创建Trigger 13.3.3 创建Scheduler 13.4 Spring中使用JDK Timer 13.4.1 Timer和...

    quartz_demo集合

    自己整理个一个quartz_demo集合,demo含CronTrigger方式、SimpleTrigger方式、spring集成CronTrigger方式、spring集成SimpleTrigger方式以及有状态作业方式。

    spring学习

    学习了spring中aop原理,学习并实现简单的ioc注入,学习了一些关于quartz的用法(simpletrigger,crontrigger),简单的一些事务配置等

    springboot jpa quartz动态定时任务

    springboot jpa quartz 动态定时任务,任务增加,任务删除,任务修改demo,非常简单

    springboot动态添加修改删除定时任务.md

    (b)ThreadPoolTaskScheduler.schedule()方法会创建一个定时计划ScheduledFuture,在这个方法需要添加两个参数,Runnable(线程接口类) 和CronTrigger(定时任务触发器)(c)在ScheduledFuture中有一个cancel可以...

    CH06-邮件发送.pptx

    Quartz框架的使用步骤是什么? SimpleTrigger和CronTrigger的区别是什么? 使用Spring整合Quartz的步骤是什么?

    quartz-all-1.6.6.jar

    quartz-all-1.6.6.jar ...否则报错 java.lang.IncompatibleClassChangeError: class org.springframework.scheduling.quartz.CronTriggerBean has interface org.quartz.CronTrigger as super class

    quartz样例源代码

    1)与spring结合,创建crontrigger、simpletrigger 2)java代码实现quartz; 3)数据库持久化 3、使用说明 1)如果使用数据库持久化,请将conf\quartz.properties文件放到工程根目录下; 2)请初始化数据库,...

Global site tag (gtag.js) - Google Analytics