zoukankan      html  css  js  c++  java
  • SpringQuartz定时任务cronExpression配置

            <!-- 每一个小时跑一次-->
            <property name="cronExpression">
                <value>0 0 0/1 * * ?</value>
            </property>

    以上是项目中的配置信息。

    附:cronExpression表达式解释:

    0 0 12 * * ?---------------在每天中午12:00触发 
    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:00至2:59之间每分钟触发一次 
    0 0/5 14 * * ?---------------每天在下午2:00至2:59之间每5分钟触发一次 
    0 0/5 14,18 * * ?---------------每天在下午2:00至2:59和6:00至6:59之间的每5分钟触发一次 
    0 0-5 14 * * ?---------------每天在下午2:00至2:05之间每分钟触发一次 
    0 10,44 14 ? 3 WED---------------每三月份的星期三在下午2:00和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, 2003, 2004 and 2005年的每个月的最后一个星期五的上午10:15触发 
    0 15 10 ? * 6#3---------------在每个月的第三个星期五的上午10:15触发 
    0 0 12 1/5 * ?---------------从每月的第一天起每过5天的中午12:00时触发 
    0 11 11 11 11 ?---------------在每个11月11日的上午11:11时触发.­
     
     
      
    字段   允许值   允许的特殊字符
      0-59   , - * /
      0-59   , - * /
    小时   0-23   , - * /
    日期   1-31   , - *   / L W C
    月份   1-12 或者 JAN-DEC   , - * /
    星期   1-7 或者 SUN-SAT   , - *   / L C #
    年(可选)   留空, 1970-2099   , - * /
      
    如上面的表达式所示: 

    “*”字符被用来指定所有的值。如:”*“在分钟的字段域里表示“每分钟”。 

    “-”字符被用来指定一个范围。如:“10-12”在小时域意味着“10点、11点、12点”。
     
    “,”字符被用来指定另外的值。如:“MON,WED,FRI”在星期域里表示”星期一、星期三、星期五”. 

    “?”字符只在日期域和星期域中使用。它被用来指定“非明确的值”。当你需要通过在这两个域中的一个来指定一些东西的时候,它是有用的。看下面的例子你就会明白。 


    “L”字符指定在月或者星期中的某天(最后一天)。即“Last ”的缩写。但是在星期和月中“L”表示不同的意思,如:在月子段中“L”指月份的最后一天-1月31日,2月28日,如果在星期字段中则简单的表示为“7”或者“SAT”。如果在星期字段中在某个value值得后面,则表示“某月的最后一个星期value”,如“6L”表示某月的最后一个星期五。

    “W”字符只能用在月份字段中,该字段指定了离指定日期最近的那个星期日。

    “#”字符只能用在星期字段,该字段指定了第几个星期value在某月中


    表达式

     意义
    "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 6 * * *  

    每两个小时 

    0 */2 * * * 
    晚上11点到早上8点之间每两个小时,早上八点 

    0 23-7/2,8 * * * 

    每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点 

    0 11 4 * 1-3 
    1月1日早上4点 

    0 4 1 1 *



    定时批处理作业是J2EE企业应用里很重要的一环,用来在晚间进行财务挂账,数据转存,新闻联播等等操作。

        而在Spring里,已经很好的集成了Quartz,简单到像配cron一样,在xml文件里面配一下时间就可以自动执行,不需要写一行代码。Spring对Quartz大刀阔斧的简化堪称范例,Quartz项目组也许可以学习一下。

    复制代码
        <bean id="methodInvokingJobDetail"
            class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
            <property name="targetObject"><ref bean="financeDAO"/></property>
            <property name="targetMethod"><value>confirmOrder</value></property>
        </bean>
        <bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
            <property name="jobDetail">
                <ref bean="methodInvokingJobDetail"/>
            </property>
            <property name="cronExpression">
                <value>0 0 6,12,20 * * ?</value>
            </property>
        </bean>
        <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
            <property name="triggers">
                <list><ref local="cronTrigger"/></list>
            </property>
        </bean>
    复制代码

     

    上面这段配置文件规定了在早上6点和晚上8点执行financeDAO对象的confirmOrder()方法.

  • 相关阅读:
    数据库字段太多,批量快速建立实体类方法(适合大量字段建立实体类)
    SQL service 中的 ”输入SQL命令窗口“ 打开了 “属性界面” 回到 ”输入SQL命令窗口“
    计算机软件编程英语词汇集锦
    编程常用英语词汇
    svn上传和下载项目
    当启动tomcat时出现tomcat setting should be set in tomcat preference page
    Implicit super constructor Object() is undefined for default constructor. Must define an explicit constructor
    eclipse中选中一个单词 其他相同的也被选中 怎么设置
    Spring Boot的@SpringBootApplication无法引入的问题
    最全的SpringCloud视频教程
  • 原文地址:https://www.cnblogs.com/cocoxu1992/p/10566372.html
Copyright © 2011-2022 走看看