1. 配置说明

    <task:annotation-driven scheduler="xxxScheduler" />

    <task:scheduler id="xxxScheduler" pool-size="10" />

    <context:component-scan base-package="xxx.tasks" />

  2. 任务代码

    import org.springframework.scheduling.annotation.Scheduled;

    import org.springframework.stereotype.Component;

       
     

    @Component

    public class DemoTask {

       
     

        @Scheduled(cron = "0/5 * * * * ? ") // 每5秒执行一次

        public void doTask() {

            System.out.println("begin run ...");

            try {

                Thread.sleep(10000);

            } catch (InterruptedException e) {

                e.printStackTrace();

            }

            System.out.println("done.");

        }

    }

  3. 测试代码

    import java.io.IOException;

    import java.util.Scanner;

       
     

    import org.springframework.context.ApplicationContext;

    import org.springframework.context.support.ClassPathXmlApplicationContext;

       
     

    public class DemoTaskApp {

       
     

        public static void main(String[] args) throws IOException {

            ApplicationContext context = new ClassPathXmlApplicationContext("spring-test.xml");

            Scanner input = new Scanner(System.in);

              
     

            new Scanner(System.in).nextLine();

        }

       
     

    }

  4. CRON表达式说明

    一个cron表达式有至少6个(也可能7个)有空格分隔的时间元素。

    1 秒(0~59)

    2 分钟(0~59)

    3 小时(0~23)

    4 天(0~31)

    5 月(0~11)

    6 星期(1~7 1=SUN 或 SUN,MON,TUE,WED,THU,FRI,SAT)

    7.年份(1970-2099)

  5. CRON表达式实例

    0 0 10,14,16 * * ? 每天上午10点,下午2点,4点

    0 0/30 9-17 * * ? 朝九晚五工作时间内每半小时

    0 0 12 ? * WED 表示每个星期三中午12点

    "0 0 12 * * ?" 每天中午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期间的每1分钟触发

    "0 0/5 14 * * ?" 在每天下午2点到下午2:55期间的每5分钟触发

    "0 0/5 14,18 * * ?" 在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发

    "0 0-5 14 * * ?" 在每天下午2点到下午2:05期间的每1分钟触发

    "0 10,44 14 ? 3 WED" 每年三月的星期三的下午2:10和2:44触发

    "0 15 10 ? * MON-FRI" 周一至周五的上午10:15触发

    "0 15 10 15 * ?" 每月15日上午10:15触发

    "0 15 10 L * ?" 每月最后一日的上午10:15触发

    "0 15 10 ? * 6L" 每月的最后一个星期五上午10:15触发

    "0 15 10 ? * 6L 2002-2005" 2002年至2005年的每月的最后一个星期五上午10:15触发

    "0 15 10 ? * 6#3" 每月的第三个星期五上午10:15触发

最新文章

  1. C#中Directory.GetFiles() 函数的使用
  2. 如何保证DBContext实例上下文唯一
  3. 阿里云服务器怎么去掉tomcat的8080端口
  4. Linux Free命令各数字含义及Buffer和Cache的区别
  5. Cocos2d入门--3--小球运动
  6. 把sql server 2000的用户表的所有者改成dbo
  7. 《Java程序设计》第八周学习总结
  8. linux基础命令学习五(软件包管理、下载管理)
  9. Entity Framework 学习之--Ling to entity实现分页
  10. 【C++基础】关键字static 局部变量
  11. hazelcast的坑爹事
  12. poi导出word
  13. HDU 1248 冰封王座(dp)
  14. Python 查找binlog文件
  15. 【转】ethtool 命令详解
  16. ArcGIS RunTime SDK for Android之Features and graphics
  17. c语言——第0次作业
  18. 【linux之sed及vim】
  19. 前端leader找我谈心:我是如何从刚毕业的前端菜鸟一步步成长为前端架构师的?
  20. bindservice与Activity通信

热门文章

  1. java面试题05
  2. OGG 11g Checkpoint 详解
  3. python--面向对象(最全讲解)
  4. 一次LVS+MySQL的主主负载均衡实战
  5. AI-Info-Micron-Insight:将您的游戏技能变成一份工作
  6. 如何使用Git命令将项目从github或者服务器上克隆下来
  7. C#父窗体右击事件实现
  8. python的paramiko模块的安装与使用
  9. oracle知识点小结1
  10. HDU - 6185 Covering(暴搜+递推+矩阵快速幂)