Spring内置定时器的使用
1. Spring内置定时器的使用
- 在configuration配置类中,引入@EnableSchedule 开启定时器
- 编写定时器类,在定时方法中添加@Schedule注解,并且使用fixedDelay,fixedRate,cron表达式用来标注定时器。
- fixedDelay: 会在上一个任务执行完后再经过n秒再执行
- fixedRate:每秒都会执行,不会管上一秒有没有被执行完成
2. 多线程定时器
- 内置的线程池都是默认单线程的,因此如果需要多个定时器并行执行,因此需要在配置多线程。
@EnableScheduling
@Configuration
public class ScheduleConfig implements SchedulingConfigurer {private static final Integer CORE_POOL_SIZE = 4;@Overridepublic void configureTasks(ScheduledTaskRegistrar taskRegistrar) {ScheduledThreadPoolExecutor scheduledThreadPoolExecutor = new ScheduledThreadPoolExecutor(CORE_POOL_SIZE,new DefaultThreadFactory("PullSyncTaskScheduleThread"));taskRegistrar.setScheduler(scheduledThreadPoolExecutor);}
}
3. async异步定时器
spring存在异步执行,也就是开启一个线程进行异步处理
- 使用@EnableAsync开启异步处理
- 在执行的方法中使用@Async标注异步执行
- 配置异步线程池,在@Async指定对应的线程池米名称。
如果在定时器同时使用@Async和@Schedule(fixedRelay=xxx),是不会说同一个任务,上一次执行完再执行,也就是说这里的fixedRelay是不会生效的。
4. 多线程定时器,定时器不执行问题
- 如果配置了多线程,多个不同的定时器,如果有一个凌晨定时器,没有被执行,应该是其他定时器被堵塞了,导致凌晨的那个定时器没有多余的thread给执行了。
Spring内置定时器的使用相关推荐
- 修改Spring boot内置的tomcat端口
介绍两种种简单的修改spring boot内置端口的方法: 第一种:在入口直接设置端口,代码如下所示: public static void main(String[] args){SpringApp ...
- Spring Security的内置过滤器是如何维护的?
Spring Security中的内置过滤器顺序是怎么维护的?我想很多开发者都对这个问题感兴趣.本篇我和大家一起探讨下这个问题. HttpSecurity包含了一个成员变量FilterOrderReg ...
- Spring Cloud Alibaba - 07 Ribbon 应用篇及内置的负载均衡算法
文章目录 Ribbon整合三部曲 artisan-cloud-ribbon-order step1 搞依赖 step2 搞注解 (在RestTemplate上加入@LoadBalanced注解) St ...
- Spring MVC-09循序渐进之文件上传(基于Servlet3.0+内置功能)
概述 测试 源码 概述 Spring MVC-09循序渐进之文件上传(基于Apache Commons FileUpload) 上篇博文我们说了基于Apache Commons FileUpload的 ...
- Spring Boot 内置Tomcat——集成PHP解决方案
Demo:https://gitee.com/shentuzhigang/mini-project/tree/master/springboot-embed-tomcat-php-demo 问题分析 ...
- Spring Boot 内置Tomcat——getServletContext().getRealPath()为临时目录问题解决方案
问题描述 getServletContext().getRealPath()为临时目录 问题分析 默认情况下Spring Boot中request.getServletContext().getRea ...
- Spring Boot 内置Tomcat——IntelliJ IDEA中配置模块目录设为文档根目录(DocumentRoot)解决方案
源码分析 org.springframework.boot.web.servlet.server.DocumentRoot /*** Returns the absolute document roo ...
- Spring Boot——内置Tomcat配置阿里云免费SSL证书(PFX格式证书)[启用HTTPS协议]
基本概念 SSL证书:SSL证书是数字证书的一种,类似于驾驶证.护照和营业执照的电子副本.因为配置在服务器上,也称为SSL服务器证书. SSL 证书就是遵守 SSL协议,由受信任的数字证书颁发机构CA ...
- 浅谈:Spring Boot原理分析,切换内置web服务器,SpringBoot监听项目(使用springboot-admin),将springboot的项目打成war包
浅谈:Spring Boot原理分析(更多细节解释在代码注释中) 通过@EnableAutoConfiguration注解加载Springboot内置的自动初始化类(加载什么类是配置在spring.f ...
最新文章
- pandas索引复合索引dataframe数据、索引其中一个水平(level)的所有数据行(index all rows in a level)
- 【 FPGA 】组合逻辑中的竞争与险象问题(五)
- fatal error C1900: Il mismatch between 'P1' version '20060201' and 'P2' version '20050411'
- 读债务危机0804:美国债务危机与调整(2007到2011)-泡沫出现
- linux cat 递归目录,实验二 linux文件目录操作
- 【HEVC帧间预测论文】P1.2 An Efficient Inter Mode Decision Approach for H.264 Video Codin
- 有哪些让人相见恨晚的Python库(一)
- ASSD: Attentive Single Shot Multibox Detector
- 十大最受欢迎蓝牙耳机品牌推荐,学生党打工人平价蓝牙耳机
- 使用JMeter代理在谷歌浏览器中录制脚本
- 百度K站之前兆与解决方案的另类分析
- Mac上下载百度云盘大文件百度云盘客户端限速怎么处理
- 线性与非线性规划:随机方向法
- 原创干货 | 史上最全的大数据学习资源(Awesome Big Data)
- 读《静静的顿河》有感
- Spring Cloud Data Flow流处理入门-5
- 【python】No such file or directory的解决方法
- 【开源免费】微软官方推荐的桌面小工具
- 【转】LTE基本架构
- (数学建模)2013年国赛B题-碎纸片复原python代码