• 有时应用需要定时(如凌晨)执行一些任务(比如计算一些数据并存下来留给后续使用)
  • 使用
    • 使用@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. arcserver 跨域问题

    http://resources.arcgis.com/en/help/rest/apiref/config.html#jcrossOriginAccesshttp://enable-cors.org ...

  2. 查看端口占用情况lsof,并关闭对应进程kill

    lsof -n -P| grep ":<端口号>" | grep LISTEN #监听对应端口号的进程 lsof -i tcp:<端口号> #和对应端口号有 ...

  3. TI XDC工具入门简介

    1. XDC(Express DSP Component)是TI提供的一个命令行工具,它可以生成并使用实时软件组件包,它包括一系列工具,这些工具可以允许你将你的C语言代码组织成类似于java的包管理方 ...

  4. 前端开发之CSS入门篇

    一.CSS介绍和语法 二.CSS引入方式 三.基本选择器 四.高级选择器 五.伪类选择器 六.伪元素选择器 1️⃣  CSS介绍和语法 1. CSS的介绍 (1)为什么需要CSS? 使用css的目的就 ...

  5. MySQL数据库篇之数据类型

    主要内容: 一.数值类型 二.日期类型 三.字符串类型 四.枚举类型与集合类型 1️⃣ 数值类型 1.整数类型:tinyint  smallint  mediumint  int  bigint 作用 ...

  6. Cassandra修改集群名称

    如果需要在不影响存储数据的情况下,更改cassandra集群名字,可采用如下步骤: 1. 对集群所有节点(for each node)依次连接CQLSH,使用如下命令:  UPDATE system. ...

  7. git回滚到某个commit 上和 返回最新的版本git

    1. 代码回退 首先你要用git log 查看你要回到的那个本版, 然后用 git reset --hard HEAD^ 回退到上个版本 git reset --hard commit_id 退到/进 ...

  8. labelme2COCO

    # -*- coding:utf-8 -*-# !/usr/bin/env python import argparseimport jsonimport matplotlib.pyplot as p ...

  9. DevCloud for CloudStack Development

    Apache CloudStack development is not an easy task, for the simplest of deployments one requires a se ...

  10. CloudStack 注册模板脚本分析

    注册系统虚拟机模板 /usr/share/cloudstack-common/scripts/storage/secondary/cloud-install-sys-tmplt 内容如下: usage ...