zoukankan      html  css  js  c++  java
  • sping的@Schedule实现定时任务

    1.配置文件

      在spring配置文件中添加xmlns:task="http://www.springframework.org/schema/task"和在xsi:schemaLocation添加http://www.springframework.org/schema/task和                 http://www.springframework.org/schema/task/spring-task-3.0.xsd">

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p"
        xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:task="http://www.springframework.org/schema/task"
        xsi:schemaLocation="http://www.springframework.org/schema/beans  
          http://www.springframework.org/schema/beans/spring-beans-4.0.xsd  
          http://www.springframework.org/schema/context  
          http://www.springframework.org/schema/context/spring-context.xsd  
          http://www.springframework.org/schema/mvc  
          http://www.springframework.org/schema/mvc/spring-mvc.xsd
          http://www.springframework.org/schema/task
          http://www.springframework.org/schema/task/spring-task-3.0.xsd">
    
        <context:property-placeholder
            ignore-unresolvable="true" location="classpath*:/config.properties" />
    
        <!-- 自动扫描包 -->
        <context:component-scan base-package="cn.com.prac.controller" />
        <!-- 启动定时任务的注解驱动 -->
        <task:annotation-driven /> 
        <!-- 配置定时任务的线程池 -->
        <task:scheduler id="myScheduler" pool-size="5" />
        
        ......
    
    </beans>

    2.定时任务类

    package cn.com.prac.controller;
    
    import org.springframework.scheduling.annotation.Scheduled;
    import org.springframework.stereotype.Component;
    
    @Component
    public class ScheduleTest {
    
        @Scheduled(cron="* * * * * ?")
        public void test(){
            System.out.println("--------测试:每秒执行一次");
        }
        
        @Scheduled(cron="0/5 * * * * ?")
        public void test2(){
            System.out.println("--------测试:每5秒执行一次");
        }
    }

     3.不用配置文件,使用@EnableScheduling,@Component,@Scheduled注解

    @EnableScheduling:启对计划任务的支持,@Component:定义spring管理Bean,@Scheduled:该方法是计划任务

    package cn.com.prac.controller;
    
    import org.springframework.scheduling.annotation.EnableScheduling;
    import org.springframework.scheduling.annotation.Scheduled;
    import org.springframework.stereotype.Component;
    
    @EnableScheduling
    @Component
    public class ScheduleTest {
    
        @Scheduled(cron="* * * * * ?")
        public void test(){
            System.out.println("--------测试:每秒执行一次");
        }
        
        @Scheduled(cron="0/5 * * * * ?")
        public void test2(){
            System.out.println("--------测试:每5秒执行一次");
        }
    }
  • 相关阅读:
    golang linux安装
    vscode 插件
    windows访问eks pods
    go mod包管理
    beego创建项目
    Atcoder ARC-125
    AtCoder AGC003 简要题解
    Python 字符串转成变量名
    13_Go基础(binary)
    12_Go基础(iota)
  • 原文地址:https://www.cnblogs.com/-scl/p/7798648.html
Copyright © 2011-2022 走看看