zoukankan      html  css  js  c++  java
  • Spring+Quartz 实现简单定时器

    环境/条件:

    1. JDK1.7

    2. jar包 spring-context-support 4.2.6.RELEASE

    3. jar包 spring-org.quartz-scheduler 2.2.1

    4. idea

    第一步 编写要执行的方法

    例:每天凌晨一点执行将年假表更新

     1   public class YearLeaveService{
     2  3     private Dao dao;
     4      
     5     public Dao getDao(){return dao;}
     6     
     7     public void setDao(Dao dao){this.dao = dao;}
     8      
     9      /**
    10      *要定时执行的方法
    11      */
    12      public void replaceAnnualLeaveByUsers(){
    13          /**
    14          *逻辑……
    15         */
    16      }
    17  }
    
    

    第二步 配置定时器

     1 <!--time-bean.xml-->
     2 
     3 <?xml version="1.0" encoding="UTF-8"?>
     4 <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
     5 
     6 <beans>
     7 
     8     <!--调度工厂-->
     9     <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
    10         <property name="triggers">
    11             <list>
    12                 <ref local="replaceYearLeaveTrigger" /><!--调度触发器-->
    13                 <!--……-->
    14                 <!--……-->
    15             </list>
    16         </property>
    17     </bean>
    18 
    19     <!--定时计算年数天假-->
    20     <bean id="replaceYearLeave" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
    21         <property name="targetObject" ref="yearLeaveService" /><!--调用类-->
    22         <property name="targetMethod" value="replaceAnnualLeaveByUsers" /><!--调用方法-->
    23         <property name="concurrent" value="false"/><!--是否同时-->
    24     </bean>
    25     <!--cron表达式触发器-->
    26     <bean id="replaceYearLeaveTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
    27         <property name="jobDetail" ref="replaceYearLeave"/><!--工作细节的bean-->
    28         <property name="cronExpression" value="0 0 1 * * ?"/><!--每天凌晨1点执行一次0 0 1 * * ?-->
    29     </bean>
    30     
    31     <!--……-->
    32     <!--……-->
    33 </beans>

    属性说明:

    1. targetObject:类

    2. targetMethod:方法

    3. concurrent:是否同时(false:上一个定时任务未完成,此任务就不会开始;true:上一个定时任务问完成,此任务同时运行),一般为false

    4. jobDetail:定时任务详情(就是前面的bean)

    5. cronExpression:cron表达式 (cron在线生成工具:http://www.bejson.com/othertools/cron/

  • 相关阅读:
    (十)安装YAML
    (十四)日志
    Android自动化测试------monkeyrunner(六)
    Android自动化测试------monkey日志管理(五)
    如何学好一门编程语言
    linux vi hjkl由来
    .net 微服务CICD 好文章
    APPCMD 精心整理 有点赞的吗
    APPCMD 命令合集
    APPCMD 使用手册
  • 原文地址:https://www.cnblogs.com/wfg934dbk/p/13384201.html
Copyright © 2011-2022 走看看