• 有时应用需要定时(如凌晨)执行一些任务(比如计算一些数据并存下来留给后续使用)
  • 使用
    • 使用@EnableScheduling注解启用Scheduling功能:不一定要标注在启动类上,也可以标注在@Configuration配置类上
    • 方法上加@Scheduled注解,方法会按照参数定期执行
  • @Scheduled参数
    • zone:设置时区,按照时区定时运行
    • cron:值为字符串,按照时钟定时运行
      • 字符串至少包含六部分(在字符串中用空格间隔开)

        • 秒(0~59),支持, - * /
        • 分(0~59),支持, - * /
        • 小时(0~23),支持, - * /
        • 日(1~31),支持, - * ? / L W
        • 月(1~12或JAN~DEC),支持, - * /
        • 星期几(1~7或SUN~SAT),支持, - * ? / L #
        • 年(可为空,空表示任意年),支持, - * /
      • 例如cron-"0 0 0 * * ?"
    • fixedDelay:以固定的频率执行,单位为毫秒,方法休息的间隔时间是相同的
    • fixedRate:以固定的频率执行,单位为毫秒,方法启动的间隔时间是相同的
      • 方法的注解参数可以使用配置文件变量和默认值,如:@Scheduled(fixedRateString = "${assets.cache.refresh.rate:900000}")
    • initialDelay:和上面的三个参数搭配使用,不能单独使用,单位为毫秒,首次执行延时
  • 默认只有一个线程在执行scheduled任务
    • 如果有两个方法在同一时刻执行,那么第二个其实是执行不了的,但是这个配置是可以改的,新建一个@Configuration的类继承自SchedulingConfigurer接口,重写configureTasks类,可以新建和设置一个ThreadPoolTaskScheduler。
  • 注意在集群/负载均衡环境下,要想办法避免多个实例都执行了定时任务,会混乱
    • 可以单独出来只有一个服务器执行定时任务,但缺点是它挂了以后,就没有了,也就是没有使用集群/负载均衡的高可用功能了
    • 使用Quartz Scheduler

Spring Boot - Spring Scheduling的更多相关文章

  1. spring Boot+spring Cloud实现微服务详细教程第二篇

    上一篇文章已经说明了一下,关于spring boot创建maven项目的简单步骤,相信很多熟悉Maven+Eclipse作为开发常用工具的朋友们都一目了然,这篇文章主要讲解一下,构建spring bo ...

  2. spring Boot+spring Cloud实现微服务详细教程第一篇

    前些天项目组的大佬跟我聊,说项目组想从之前的架构上剥离出来公用的模块做微服务的开发,恰好去年的5/6月份在上家公司学习了国内开源的dubbo+zookeeper实现的微服务的架构.自己平时对微服务的设 ...

  3. Spring boot +Spring Security + Thymeleaf 认证失败返回错误信息

    [Please make sure to select the branch corresponding to the version of Thymeleaf you are using] Stat ...

  4. 255.Spring Boot+Spring Security:使用md5加密

    说明 (1)JDK版本:1.8 (2)Spring Boot 2.0.6 (3)Spring Security 5.0.9 (4)Spring Data JPA 2.0.11.RELEASE (5)h ...

  5. 256.Spring Boot+Spring Security: MD5是加密算法吗?

    说明 (1)JDK版本:1.8 (2)Spring Boot 2.0.6 (3)Spring Security 5.0.9 (4)Spring Data JPA 2.0.11.RELEASE (5)h ...

  6. Spring Boot+Spring Security:获取用户信息和session并发控制

    说明 (1)JDK版本:1.8(2)Spring Boot 2.0.6(3)Spring Security 5.0.9(4)Spring Data JPA 2.0.11.RELEASE(5)hiber ...

  7. Cola Cloud 基于 Spring Boot, Spring Cloud 构建微服务架构企业级开发平台

    Cola Cloud 基于 Spring Boot, Spring Cloud 构建微服务架构企业级开发平台: https://gitee.com/leecho/cola-cloud

  8. spring boot + spring batch 读数据库文件写入文本文件&读文本文件写入数据库

    好久没有写博客,换了一家新公司,原来的公司用的是spring,现在这家公司用的是spring boot.然后,项目组布置了一个任务,关于两个数据库之间的表同步,我首先想到的就是spring batch ...

  9. Spring Boot/Spring Cloud、ESB、Dubbo

    如何使用Spring Boot/Spring Cloud 实现微服务应用spring Cloud是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中的配置管理.服务发现. ...

  10. 使用Spring Boot,Spring Cloud和Docker实现微服务架构

    https://github.com/sqshq/PiggyMetrics     Microservice Architecture with Spring Boot, Spring Cloud a ...

随机推荐

  1. Eclipse的Java Working set

    1. 在 java perspective 点击 package explorer 的 倒三角 ,选择 Configurate Working Sets 新建Working Sets 或者 在 pac ...

  2. ffmpeg基本用法(转)

    FFmpeg FFmpeg 基本用法 本课要解决的问题 1.FFmpeg的转码流程是什么? 2.常见的视频格式包含哪些内容吗? 3.如何把这些内容从视频文件中抽取出来? 4.如何从一种格式转换为另一种 ...

  3. js原型和原型链[转]

    附上原文出处:http://hzjavaeyer.group.iteye.com/group/wiki/3086-JavaScript-core-concepts 一.概念: 原型对象:JavaScr ...

  4. linux系统中的单引号和双引号

    一.为什么用quoting 前面说到,命令行在内容上主要由literal(一般文字)和meta(元字符)组成,而meta又由IFS.CR和其他字符组成(如=,$, > 等),通常这些原元字符都有 ...

  5. 75-扩展GCD-时间复杂度

    扩展gcd-时间复杂性 题目内容: 计算循环语句的执行频次 for(i=A; i!=B ; i+=C) x+=1; 其中A,B,C,i都是k位无符号整数. 输入描述 A B C k, 其中0<k ...

  6. 泛型、反射和抽象工厂结合解决多DB问题

  7. 高性能python编程之协程(stackless)-乾颐堂

    我们都知道并发(不是并行)编程目前有四种方式,多进程,多线程,异步,和协程. 多进程编程在python中有类似C的os.fork,当然还有更高层封装的multiprocessing标准库,在之前写过的 ...

  8. easyui-tabs扩展根据自定义属性打开页签

    .增加扩展 <script type="text/javascript" > /** * @author {kexb} easyui-tab扩展根据id切换页面 */ ...

  9. 安装DotNetCore.1.0.0-VS2015Tools.Preview2一直失败

    266C:22B0][2016-08-01T23:02:29]i052: Condition 'WixBundleInstalled OR NOT(NetFx45Release < 378675 ...

  10. C++中的深拷贝和浅拷贝 QT中的深拷贝,浅拷贝和隐式共享

    下面是C++中定义的深,浅拷贝 当用一个已初始化过了的自定义类类型对象去初始化另一个新构造的对象的时候,拷贝构造函数就会被自动调用.也就是说,当类的对象需要拷贝时,拷贝构造函数将会被调用.以下情况都会 ...