Spring Boot - Spring Scheduling
- 有时应用需要定时(如凌晨)执行一些任务(比如计算一些数据并存下来留给后续使用)
- 使用
- 使用@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的更多相关文章
- spring Boot+spring Cloud实现微服务详细教程第二篇
上一篇文章已经说明了一下,关于spring boot创建maven项目的简单步骤,相信很多熟悉Maven+Eclipse作为开发常用工具的朋友们都一目了然,这篇文章主要讲解一下,构建spring bo ...
- spring Boot+spring Cloud实现微服务详细教程第一篇
前些天项目组的大佬跟我聊,说项目组想从之前的架构上剥离出来公用的模块做微服务的开发,恰好去年的5/6月份在上家公司学习了国内开源的dubbo+zookeeper实现的微服务的架构.自己平时对微服务的设 ...
- Spring boot +Spring Security + Thymeleaf 认证失败返回错误信息
[Please make sure to select the branch corresponding to the version of Thymeleaf you are using] Stat ...
- 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 ...
- 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 ...
- 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 ...
- Cola Cloud 基于 Spring Boot, Spring Cloud 构建微服务架构企业级开发平台
Cola Cloud 基于 Spring Boot, Spring Cloud 构建微服务架构企业级开发平台: https://gitee.com/leecho/cola-cloud
- spring boot + spring batch 读数据库文件写入文本文件&读文本文件写入数据库
好久没有写博客,换了一家新公司,原来的公司用的是spring,现在这家公司用的是spring boot.然后,项目组布置了一个任务,关于两个数据库之间的表同步,我首先想到的就是spring batch ...
- Spring Boot/Spring Cloud、ESB、Dubbo
如何使用Spring Boot/Spring Cloud 实现微服务应用spring Cloud是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中的配置管理.服务发现. ...
- 使用Spring Boot,Spring Cloud和Docker实现微服务架构
https://github.com/sqshq/PiggyMetrics Microservice Architecture with Spring Boot, Spring Cloud a ...
随机推荐
- MySQL系统时间函数NOW(),CURRENT_TIMESTAMP(),SYSDATE()的区别
CURRENT_TIMESTAMP是NOW的同义词,也就是说两者是相同的. SYSDATE函数返回的是执行到当前函数时的时间,而NOW返回的是执行SQL语句时的时间. 测试语句: SELECT NOW ...
- inline-block元素出现位置错位的解决方法
如下代码所示: <div class="container"> <div style="display: inline-block; height: 1 ...
- 前端 webpack
前端 webpack http://www.cnblogs.com/lvdabao/
- c# winform 解决PictureBox 无法打印全部图片的问题
一. 问题描述 在页面使用PictureBox 加载资料图片后,点击“打印”,只能打印图片首页,较大图片则无法全部打印. 二. 原因分析 PictureBox中打印图片时没有设置继续打印相关属 ...
- 高性能Web服务器Nginx的配置与部署研究(6)核心模块之主模块的测试常用指令
1. daemon 含义:设置是否以守护进程模式运行 语法:daemon on|off 缺省:on 示例:daemon off; 注意:生产环境(production mode)中不要使用daemon ...
- 建立spring项目入门实例
建立maven项目 打开pop.xml文件 添加springframework所依赖的包 <!-- https://mvnrepository.com/artifact/org.springfr ...
- SpringBoot 集成Mybatis时 使用通用插件Mapper 注意事项
1.如果在SpringBoot的启动入口类上面加入注解 @MapperScan(basePackages = "com.leecx.mapper") 使用的是 org ...
- 使用python管理Cisco设备-乾颐堂
今天发现一个老外使用python写的管理cisco设备的小框架tratto,可以用来批量执行命令. 下载后主要有3个文件: Systems.py 定义了一些不同设备的操作系统及其常见命令. Conne ...
- Python3 urllib.parse 常用函数示例
Python3 urllib.parse 常用函数示例 http://blog.51cto.com/walkerqt/1766670 1.获取url参数. >>> from url ...
- Spring查询方法的注入 为查询的方法注入某个实例
//这里是客户端的代码 当调用CreatePersonDao这个抽象方法或者虚方法的时候由配置文件返回指定的实例 为查询的方法注入某个实例 start static void Main(string[ ...