• Spring task定时任务


    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
    
        <groupId>com.umgsai</groupId>
        <artifactId>spring-cron</artifactId>
        <version>1.0-SNAPSHOT</version>
    
        <dependencies>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-context</artifactId>
                <version>4.2.4.RELEASE</version>
            </dependency>
        </dependencies>
    </project>
    

    Spring配置如下

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:context="http://www.springframework.org/schema/context"
           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.1.xsd
                http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd
                http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-4.1.xsd">
    
        <!-- 配置注解扫描 -->
        <context:component-scan base-package="com.umgsai.spring.task"/>
    
        <task:scheduler id="taskScheduler" pool-size="100" />
    
        <task:scheduled-tasks scheduler="taskScheduler">
            <!-- 每半分钟触发任务 -->
            <task:scheduled ref="task" method="task1" cron="30 * * * * ?"/>
            <!-- 每小时的10分30秒触发任务 -->
            <task:scheduled ref="task" method="task2" cron="30 10 * * * ?"/>
            <!-- 每天1点10分30秒触发任务 -->
            <task:scheduled ref="task" method="task3" cron="30 10 1 * * ?"/>
            
            <!-- 每月20号的1点10分30秒触发任务 -->
            <task:scheduled ref="task" method="task4" cron="30 10 1 20 * ?"/>
            <!-- 每年10月20号的1点10分30秒触发任务 -->
            <task:scheduled ref="task" method="task5" cron="30 10 1 20 10 ?"/>
            <!-- 每15秒、30秒、45秒时触发任务 -->
            <task:scheduled ref="task" method="task6" cron="15,30,45 * * * * ?"/>
            <!-- 15秒到45秒每隔1秒触发任务 -->
            <task:scheduled ref="task" method="task7" cron="15-45 * * * * ?"/>
            <!-- 每分钟的每15秒时任务任务,每隔5秒触发一次 -->
            <task:scheduled ref="task" method="task8" cron="15/5 * * * * ?"/>
            <!-- 每分钟的15到30秒之间开始触发,每隔5秒触发一次 -->
            <task:scheduled ref="task" method="task9" cron="15-30/5 * * * * ?"/>
            <!-- 每小时的0分0秒开始触发,每隔3分钟触发一次 -->
            <task:scheduled ref="task" method="task10" cron="0 0/3 * * * ?"/>
            <!-- 星期一到星期五的10点15分0秒触发任务 -->
            <task:scheduled ref="task" method="task11" cron="0 15 10 ? * MON-FRI"/>
        </task:scheduled-tasks>
    
    </beans>
    
    package com.umgsai.spring.task;
    
    import org.springframework.stereotype.Component;
    import java.util.Date;
    
    /**
     * Created by shangyidong on 16/10/23.
     */
    @Component
    public class Task {
        public void task1(){
            System.out.printf("Task: %s, Current time: %s
    ", 1, new Date().toLocaleString());
        }
    
        public void task2(){
            System.out.printf("Task: %s, Current time: %s
    ", 2, new Date().toLocaleString());
        }
    
        public void task3(){
            System.out.printf("Task: %s, Current time: %s
    ", 3, new Date().toLocaleString());
        }
    
        public void task4(){
            System.out.printf("Task: %s, Current time: %s
    ", 4, new Date().toLocaleString());
        }
    
        public void task5(){
            System.out.printf("Task: %s, Current time: %s
    ", 5, new Date().toLocaleString());
        }
    
        public void task6(){
            System.out.printf("Task: %s, Current time: %s
    ", 6, new Date().toLocaleString());
        }
    
        public void task7(){
            System.out.printf("Task: %s, Current time: %s
    ", 7, new Date().toLocaleString());
        }
    
        public void task8(){
            System.out.printf("Task: %s, Current time: %s
    ", 8, new Date().toLocaleString());
        }
    
        public void task9(){
            System.out.printf("Task: %s, Current time: %s
    ", 9, new Date().toLocaleString());
        }
    
        public void task10(){
            System.out.printf("Task: %s, Current time: %s
    ", 10, new Date().toLocaleString());
        }
    
        public void task11(){
            System.out.printf("Task: %s, Current time: %s
    ",11, new Date().toLocaleString());
        }
    
    }
    
    public class Main {
        public static void main(String[] args){
            ApplicationContext context = new ClassPathXmlApplicationContext("classpath:/applicationContext.xml");
        }
    }
    

    启动spring容器即可。

  • 相关阅读:
    iSCSI又称为IPSAN
    文档类型定义DTD
    HDU 2971 Tower
    HDU 1588 Gauss Fibonacci
    URAL 1005 Stone Pile
    URAL 1003 Parity
    URAL 1002 Phone Numbers
    URAL 1007 Code Words
    HDU 3306 Another kind of Fibonacci
    FZU 1683 纪念SlingShot
  • 原文地址:https://www.cnblogs.com/umgsai/p/5989266.html
Copyright © 2020-2023  润新知