一个Quartz的CronTrigger表达式分为七项子表达式,其中每一项以空格隔开,从左到右分别是:秒,分,时,月的某天,月,星期的某天,年;其中年不是必须的,也就是说任何一个表达式最少需要六项。
例:0 0 12 ? * WED 表示每个星期三的12点执行,这里没有“年”这项。

先看示列:"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=星期一 等等。

下面看一个实际的配置实例:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd"
       default-lazy-init="true">

    <bean id="schedulerFactory" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
        <property name = "triggers" >
            <list>
                <ref bean="bookingNotifyTrigger" />
            </list>
        </property>
    </bean>

    <bean id="bookingNotifyTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
        <property name="jobDetail" ref="bookingNotifyJobDetail" />
        <property name="startDelay" value="1000" />
        <property name="cronExpression" value="0 0/1 * * * " />
    </bean>

    <bean id="bookingNotifyJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
        <property name="targetObject" >
            <bean class="com.test.QueryOrderExecutorTask" >
                <property name="timeout" value="30000" />
            </bean>
        </property>
        <property name="targetMethod" value="execute"/>
        <property name="concurrent" value="false" />
    </bean>

</beans>

在com.test.QueryOrderEecutorTask类里的execute()方法里直接写执行的逻辑就OK了。

关于cronExpression表达式,这里讲解一下:
字段 允许值 允许的特殊字符
秒 0-59 , - * /
分 0-59 , - * /
小时 0-23 , - * /
日期 1-31 , - * ? / L W C
月份 1-12 或者 JAN-DEC , - * /
星期 1-7 或者 SUN-SAT , - * ? / L C #
年(可选) 留空, 1970-2099 , - * /
表达式意义
"0 0 12 * * ?" 每天中午12点触发
"0 15 10 ? * *" 每天上午10:15触发
"0 15 10 * * ?" 每天上午10:15触发
"0 15 10 * * ? *" 每天上午10:15触发
"0 15 10 * * ? 2005" 2005年的每天上午10:15触发
"0 * 14 * * ?" 在每天下午2点到下午2:59期间的每1分钟触发
"0 0/5 14 * * ?" 在每天下午2点到下午2:55期间的每5分钟触发
"0 0/5 14,18 * * ?" 在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发
"0 0-5 14 * * ?" 在每天下午2点到下午2:05期间的每1分钟触发
"0 10,44 14 ? 3 WED" 每年三月的星期三的下午2:10和2:44触发
"0 15 10 ? * MON-FRI" 周一至周五的上午10:15触发
"0 15 10 15 * ?" 每月15日上午10:15触发
"0 15 10 L * ?" 每月最后一日的上午10:15触发
"0 15 10 ? * 6L" 每月的最后一个星期五上午10:15触发
"0 15 10 ? * 6L 2002-2005" 2002年至2005年的每月的最后一个星期五上午10:15触发
"0 15 10 ? * 6#3" 每月的第三个星期五上午10:15触发
每天早上6点
0 0 6 * * *
每两个小时
0 0 */2 * * *
晚上11点到早上8点之间每两个小时,早上八点
0 0 23-7/2,8 * * *
每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点
0 0 11 4 * 1-3
1月1日早上4点
0 0 4 1 1 *

org.springframework.scheduling.quartz.CronTriggerBean 配置相关推荐

  1. 配置org.springframework.scheduling.quartz.CronTriggerBean (转载)

    在项目中又用到了定时器,对于定时器的应用总是模模糊糊的,今天结合网上找到的资料与自己在项目中写的简单地在此写一下,以备需要时查阅. 一个Quartz的CronTrigger表达式分为七项子表达式,其中 ...

  2. 配置org.springframework.scheduling.quartz.CronTriggerBean

    在项目中又用到了定时器,对于定时器的应用总是模模糊糊的,今天结合网上找到的资料与自己在项目中写的简单地在此写一下,以备需要时查阅. 一个Quartz的CronTrigger表达式分为七项子表达式,其中 ...

  3. JAVA定时器 配置org.springframework.scheduling.quartz.CronTriggerBean

    在项目中又用到了定时器,对于定时器的应用总是模模糊糊的,今天结合网上找到的资料与自己在项目中写的简单地在此写一下,以备需要时查阅. 一个Quartz的CronTrigger表达式分为七项子表达式,其中 ...

  4. org.springframework.scheduling.quartz.CronTriggerBean定时任务配置

    在项目中又用到了定时器,对于定时器的应用总是模模糊糊的,今天结合网上找到的资料与自己在项目中写的简单地在此写一下,以备需要时查阅. 一个Quartz的CronTrigger表达式分为七项子表达式,其中 ...

  5. org.quartz.CronTrigger cannot be cast to org.springframework.scheduling.quartz.CronTriggerBean

    问题:org.quartz.CronTrigger cannot be cast to org.springframework.scheduling.quartz.CronTriggerBean 分析 ...

  6. Caused by: java.lang.ClassNotFoundException: org.springframework.scheduling.quartz.CronTriggerBean

    在ssm框架中配置quartz定时器出现: Caused by: java.lang.ClassNotFoundException: org.springframework.scheduling.qu ...

  7. spring集成quartz报org.springframework.scheduling.quartz.CronTriggerBean异常

    spring集成quartz项目做定时任务,但是启动tomcat报错: ClassNotFoundException: org.springframework.scheduling.quartz.Cr ...

  8. ClassNotFoundException: org.springframework.scheduling.quartz.CronTriggerBean

    spring4.3.6与quartz 2.2.3集成出现以下问题 [html] view plaincopy Caused by: org.springframework.beans.factory. ...

  9. java crontriggerbean_从Spring 3迁移到Spring 4-org.springframework.scheduling.quartz.CronTriggerBean...

    我正在尝试从Spring 3.0.5迁移到Spring4.1.X. Spring 3的类名为" org.springframework.scheduling.quartz.CronTrigg ...

最新文章

  1. 【HDU - 5914 】Triangle (打表 或 set维护)
  2. python获取软件窗口句柄_Python获取浏览器窗口句柄过程解析
  3. mysql找不到performance_Mysql安装完毕运行时没有mysql和performance_schema数据库_MySQL
  4. LVDS屏的俩种接口:JEIDAVESA
  5. uva live 4394 String painter 区间dp
  6. 前端等值线分析DEMO(更新地址)
  7. キュリオ / 库利欧
  8. Hadoop FS 常用命令详解
  9. 三星集团总裁李健熙:72岁老者的争议人生
  10. 【支付】第三方支付收单机构
  11. 中国网络游戏行业发展模式创新与投资前景调研报告2021-2027年
  12. 阿里云香港云服务器ECS适合什么场景?
  13. 苹果或将采用高通屏下指纹方案,5GiPhone基带由三星、高通共同提供
  14. 提供在Linux上运行最新版腾讯QQ与TIM的解决方案 Easiest Way to Run QQTIM on Linux
  15. 安装kali步骤(超级超级详细)
  16. 房屋租赁管理系统的设计和实现,SpringBoot计算机毕业设计论文
  17. 国际域名缩写____各个国家
  18. oracle中查询当前系统时间用到的dual是什么?
  19. 影视网站设计报告代码MySQL_基于PHP的视频网站的设计与实现(MySQL)(含录像)
  20. BDE, dbGo, dbExpress的抉擇

热门文章

  1. Docker入门指令
  2. python bar图 百分比_matplotlib bar()实现百分比堆积柱状图
  3. wifi发射功率查看和设置
  4. StringBuilder和输入输出
  5. 前端MUI+H5+HBuilderX开发APP(IOS,android),后台Springboot,java学习与实践文章,更新中(二)
  6. html 在线测试 鱼缸,五大浏览器功耗(电量消耗)测试:IE9领先
  7. narx神经网络 matlab,神经网络 NARX
  8. 各种稀奇古怪的问题(持续更新中)
  9. Oracle-Spatial空间数据库基础
  10. Pytorch transformers tokenizer 分词器词汇表添加新的词语和embedding