zoukankan      html  css  js  c++  java
  • Spring MVC 定时任务注解说明

    一、注解说明。
    Spring 自带的定时任务执行@Scheduled注解,可以定时的、周期性的执行一些任务。查看@Scheduled的注解可以看到有以下三种:
    1.1 String cron() default “” ;

    //定义一个按时间执行的定时任务,在每天1:00执行一次。
    @Scheduled(cron = "0 0 1* * ?") 
    public void run() {
      //执行代码
    }
    

      example

    "0 0 12 * * ?"    每天中午十二点触发 
    "0 15 10 ? * *"    每天早上10:15触发 
    "0 15 10 * * ?"    每天早上10:15触发 
    "0 15 10 * * ? *"    每天早上10:15触发 
    "0 15 10 * * ? 2005"    2005年的每天早上10:15触发 
    "0 * 14 * * ?"    每天从下午2点开始到2点59分每分钟一次触发 
    "0 0/5 14 * * ?"    每天从下午2点开始到2:55分结束每5分钟一次触发 
    "0 0/5 14,18 * * ?"    每天的下午2点至2:55和6点至6点55分两个时间段内每5分钟一次触发 
    "0 0-5 14 * * ?"    每天14:00至14:05每分钟一次触发 
    "0 10,44 14 ? 3 WED"    三月的每周三的14:10和14:44触发 
    "0 15 10 ? * MON-FRI"    每个周一、周二、周三、周四、周五的10:15触发 
    

      实例:

    Task类:

    Java对应代码:

        package com.axb.cheney.task;  
        import java.sql.ResultSet;  
        import java.sql.SQLException;  
        import org.springframework.scheduling.annotation.Scheduled;  
        import org.springframework.stereotype.Component;  
          
        /**   
         * 心跳更新。启动时执行一次,之后每隔2秒执行一次   
         * @Scheduled(fixedRate = 1000*2)  
         */  
          
        @Component  
        public class ManageSql {  
          
            @Scheduled(cron="0/30 * * * * ? ") //间隔5秒执行      
            public void test(){  
                System.out.println("定时任务开始啦,哈哈哈");  
                System.out.println("<<<---------结束执行HR数据同步任务--------->>>");  
            }  
        }  
    

    配置:

    中添加以下对应内容 :
    1、xmlns 加下面的内容:

    xmlns:task="http://www.springframework.org/schema/task"


    2、然后xsi:schemaLocation加下面的内容:
    http://www.springframework.org/schema/taskhttp://www.springframework.org/schema/task/spring-task-4.1.xsd


    3、最后是我们的task任务扫描注解
    <task:annotation-driven/>


    4、配置的扫描位置是
    <context:component-scan base-package="com.XXX.task"></context:component-scan>

    添加后,如下图所示:

    注意:

      1、spring的注解@Scheduled  需要写在实现方法上;

      2、定时器的任务方法不能有返回值(如果有返回值,spring初始化的时候会告诉你有个错误、需要设定一个proxytargetclass的某个值为true),不能指向任何的参数;

      3、如果该方法需要与应用程序上下文的其他对象进行交互,通常是通过依赖注入来实现;

      4、实现类上要有组件的注解@Component。

  • 相关阅读:
    同node上,两个pod通过svc访问不通
    Prometheus基于service自动添加监控
    systemd 服务管理编写
    kubernetes 控制器详解【持续完善中】
    tcpdump抓包工具
    Zabbix日志监控插件
    Spring WebFlux之HttpHandler的探索
    知秋源码解读分享系列
    Spring Framework 5.0.0.M3中文文档 翻译记录 Part I. Spring框架概览1-2.2
    Spring Framework 5.0.0.M3中文文档 翻译记录 introduction
  • 原文地址:https://www.cnblogs.com/ailiying/p/7976336.html
Copyright © 2011-2022 走看看