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

  • 相关阅读:
    Android自动化框架学习中遇到的方法
    Python中使用adb命令行
    monkeyrunner无法运行的问题解决方案总结
    TCP与UDP的区别
    KVM虚拟机的认知
    HTTP状态码分类
    FTP主动模式(Port)和被动模式(Passive)的区别
    Linux df -h 显示磁盘空间满,但实际未占用满——问题分析
    浅谈AD域
    zabbix连接Mysql提示Can’t connect to local MySQL server through socket的解决方法
  • 原文地址:https://www.cnblogs.com/pcheng/p/4819927.html
Copyright © 2011-2022 走看看