• 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里即可。当然前提是你的调度都要存在一个类里~

  • 相关阅读:
    从JAVA看C#中volatile和synchronized关键字的作用
    SSAS动态添加分区 (转载)
    IIS7的集成模式下如何让自定义的HttpModule不处理静态文件(.html .css .js .jpeg等)请求
    SqlServer Analysis Service的事实维度关系
    SqlServer分区表概述(转载)
    SQL2005中的事务与锁定(九)-(1)- 转载
    SQL2005中的事务与锁定(八)- 转载
    SQL2005中的事务与锁定(七)
    LINUX下编译ffmpeg-x264出现的错误及解决转
    从ffmpeg源代码分析如何解决ffmpeg编码的延迟问题 (转)
  • 原文地址:https://www.cnblogs.com/pcheng/p/4819927.html
Copyright © 2020-2023  润新知