• 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秒执行一次");
        }
    }
  • 相关阅读:
    pycharm快捷键
    类变量、实例变量--python
    内置窗口 pyqt5
    Python GUI教程(六):使用Qt设计师进行窗口布局
    PyCharm中Qt Designer+PyUIC配置
    PyQT5堆叠布局:切换界面(QStackedLayout)
    面试题之位运算的巧妙应用
    mybatis之Mapped Statements collection does not contain value for...错误原因分析
    tomcat报错Exception loading sessions from persistent storage解决方案
    leetcode数据库sql之Delete Duplicate Emails
  • 原文地址:https://www.cnblogs.com/-scl/p/7798648.html
Copyright © 2020-2023  润新知