• Spring整合Quartz定时器


    1.添加jar

    #此处省略spring核心jar包
    <dependency>
        <groupId>org.quartz-scheduler</groupId>
        <artifactId>quartz</artifactId>
        <version>2.2.3</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context-support</artifactId>
        <version>4.2.3-RELEASE</version>
    </dependency>
    

    2.任务类

    public class DemoTask {
    
        public void work() {
            System.out.println("执行任务");
        }
    }
    

    3.spring配置文件

    <!-- 任务 -->
        <bean id="demoTask" class="com.light.ssm.schedule.DemoTask" />
        
        <!-- 任务明细-->
    	<bean id="jobDetail"  class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
    		<property name="targetObject" ref="demoTask" />
    		<property name="targetMethod" value="work" />
    		<!--false表示等上一个任务执行完后再开启新的任务-->
    		<property name="concurrent" value="false" />
    	</bean>
    	
    	<!-- 触发器 -->
    	<bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
    		<property name="jobDetail" ref="jobDetail" />
    		<property name="cronExpression" value="0/5 * * * * ?" /> <!-- 每5秒 -->
    	</bean>
    	 
    	<!-- 总调度用于启动Spring定时器 -->
    	<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
    		<property name="triggers">
    			<list>
    			    <ref bean="cronTrigger" />
    			</list>
    		</property>
    	</bean>
    

    4.Cron

    1)Cron表达式的格式:秒 分 时 日 月 周 年(可选)。
       字段名                 允许的值                        允许的特殊字符  
       秒                         0-59                            , - * /  
       分                         0-59                             , - * /  
       小时                     0-23                              , - * /  
       日                         1-31                               , - * ? / L W C  
       月                         1-12 or JAN-DEC           , - * /  
       周几                     1-7 or SUN-SAT                , - * ? / L C #  
       年 (可选字段)      empty, 1970-2099               , - * /
    
       “?”字符:表示不确定的值
       “,”字符:指定数个值
       “-”字符:指定一个值的范围
       “/”字符:指定一个值的增加幅度。n/m表示从n开始,每次增加m
       “L”字符:用在日表示一个月中的最后一天,用在周表示该月最后一个星期X
       “W”字符:指定离给定日期最近的工作日(周一到周五)
       “#”字符:表示该月第几个周X。6#3表示该月第3个周五
    
    
    2)Cron表达式范例:
         每隔5秒执行一次:*/5 * * * * ?
         每隔1分钟执行一次:0 */1 * * * ?
         每天23点执行一次:0 0 23 * * ?
         每天凌晨1点执行一次:0 0 1 * * ?
         每月1号凌晨1点执行一次:0 0 1 1 * ?
         每月最后一天23点执行一次:0 0 23 L * ?
         每周星期天凌晨1点实行一次:0 0 1 ? * L
         在26分、29分、33分执行一次:0 26,29,33 * * * ?
         每天的0点、13点、18点、21点都执行一次:0 0 0,13,18,21 * * ?
  • 相关阅读:
    getField();在TP5里成什么了?
    .NET微信公众号开发-1.0初始微信公众号
    【原创】基于Bootstrap的Modal二次封装
    [原创]EF架构随心所欲打造属于你自己的DbModel
    [原创]Entity Framework查询原理
    [原创]扩展方法基本用法
    【原创】贡献一个项目中用到的js身份证验证-超级准!!!
    【原创】用JQury来制作星星打分特效功能
    【原创】Jquery初体验二
    Jquery初体验一
  • 原文地址:https://www.cnblogs.com/moonlightL/p/7271308.html
Copyright © 2020-2023  润新知