zoukankan      html  css  js  c++  java
  • Spring中Quartz的配置及corn表达式

      Quartz可以用来执行任务调度功能,如间隔一定时间调用执行任务。用起来还是蛮方便的。只要将你要调用的类配置到Spring配置文件即可。

    在Spring的配置文件中配置Quartz。

     1 <!-- 要调用的工作类 -->
     2        <bean id="quartzJob" class="com.aisino.projects.supply.task.Quartzjob"></bean>
     3        <!-- 定时任务活动生效与失效 -->
     4        <bean id="jobtask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
     5            <!-- 调用的类 -->
     6            <property name="targetObject">
     7                <ref bean="quartzJob"/>
     8            </property>
     9            <!-- 调用类中的方法 -->
    10            <property name="targetMethod">
    11                <value>Job</value>
    12            </property>
    13        </bean>
    14        <!-- 定义触发时间 -->
    15        <bean id="doTime" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
    16            <property name="jobDetail">
    17                <ref bean="jobtask"/>
    18            </property>
    19            <!-- cron表达式 -->
    20            <property name="cronExpression">
    21                <value>0 1 0 * * ?</value>
    22            </property>
    23        </bean>
    24 <!-- 总管理类 如果将lazy-init='false'那么容器启动就会执行调度程序  -->
    25        <bean id="startQuertz" lazy-init="false" autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
    26            <property name="triggers">
    27                <list>
    28                    <ref bean="doTime"/>
    29                </list>
    30            </property>
    31        </bean>

      如上图,在第2行配置要调用的类,第11行配置要调用的方法,第21行配置要调用的时间,即可。

      时间的话。这里用的corn表达式。各参数如下:

    字段    允许值        允许的特殊字符

    秒     0-59         , - * / 
    分     0-59         , - * / 
    小时    0-23         , - * / 
    日期    1-31         , - * ? / L W C 
    月份    1-12 或者 JAN-DEC  , - * / 
    星期    1-7 或者 SUN-SAT   , - * ? / L C # 
    年(可选) 留空, 1970-2099   , - * /

    “?”字符:表示不确定的值

    “,”字符:指定数个值

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

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

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

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

    “#”字符:表示该月第几个周X。6#3表示该月第3个周五

      所以:上面例子里表示的就是:每天00点01分的时候执行一次Quartzjob类的Job方法。如果需要多个任务调度,只需要重复写上面4个bean中的第2、3个,然后将触发时间配置进第4个bean的list里即可。当然前提是你的调度都要存在一个类里~

  • 相关阅读:
    [转]SVN服务器搭建和使用(二)
    [转]SVN服务器搭建和使用(一)
    BZOJ 2049 Sdoi2008 Cave 洞穴勘测
    BZOJ 1589 Usaco2008 Dec Trick or Treat on the Farm 采集糖果
    BZOJ 2796 POI2012 Fibonacci Representation
    BZOJ 2115 Wc2011 Xor
    BZOJ 3105 CQOI2013 新Nim游戏
    BZOJ 2460 Beijing2011 元素
    BZOJ 3687 简单题
    BZOJ 1068 SCOI2008 压缩
  • 原文地址:https://www.cnblogs.com/pcheng/p/4819927.html
Copyright © 2011-2022 走看看