SpringBoot中使用Schedule
一、基本方法
有了SpringBoot貌似一切都变了非常简单,定时任务也不用整合quartz了,直接schedule就欧了。具体咋用?非常简单。
1、引入POM依赖
Spring的Schedule包含在spring-boot-starter模块中,无需引入其他依赖。
2、开启注解支持
在启动类增加注解:@EnableScheduling
3、轻松上手使用
A、Cron表达式
// 当方法的执行时间超过任务调度频率时,调度器会在下个周期执行@Scheduled(cron = "0/10 * * * * *") private void cronSchedule() {LOGGER.info("cronSchedule");}
B、固定间隔
// 固定间隔,等上一次调度完成后,再开始计算间隔,再执行@Scheduled(fixedDelay = 5000) public void fixedDelaySchedule() {LOGGER.info("fixedDelaySchedule");}
C、固定频率
// 固定频率,如果上次调度超过了频率时间,那么在其完成后,立刻执行@Scheduled(fixedRate = 3000) public void fixedRateSchedule() {LOGGER.info("fixedRateSchedule");}
二、注意要点
Spring的Schecule默认是单线程执行的,如果你定义了多个任务,那么他们将会被串行执行,会严重不满足你的预期。
所以为了解决该问题,需要自定义线程池,具体如下:
/*** 自定义线程池*/
@Component
public class ScheduleConfig implements SchedulingConfigurer {@Overridepublic void configureTasks(ScheduledTaskRegistrar taskRegistrar) {taskRegistrar.setScheduler(customScheduler());}@Bean(destroyMethod = "shutdown")public ExecutorService customScheduler() {return Executors.newScheduledThreadPool(20);}}
SpringBoot中使用Schedule相关推荐
- SpringBoot中的定时任务的同步与异步
SpringBoot中的定时任务的同步与异步你确定真的知道? 授人以渔 Java领域;架构知识;面试心得;互联网行业最新资讯 定时任务调度功能在我们的开发中是非常常见的,随便举几个例子:定时清除一些过 ...
- springBoot中使用定时任务
简单示例 导入依赖 springBoot已经默认集成了定时任务的依赖,只需要引入基本的依赖就可以使用定时任务. <parent><groupId>org.springframe ...
- springboot中@scheduled注解使用备注
参考文章: https://cloud.tencent.com/developer/article/1497610 https://blog.csdn.net/Rice_kil/article/det ...
- 在SpringBoot中使用Spring Session解决分布式会话共享问题
在SpringBoot中使用Spring Session解决分布式会话共享问题 问题描述: 每次当重启服务器时,都会导致会员平台中已登录的用户掉线.这是因为每个用户的会话信息及状态都是由session ...
- SpringBoot 中 JPA 的使用
前言 第一次使用 Spring JPA 的时候,感觉这东西简直就是神器,几乎不需要写什么关于数据库访问的代码一个基本的 CURD 的功能就出来了.下面我们就用一个例子来讲述以下 JPA 使用的基本操作 ...
- 难以想象SpringBoot中的条件注解底层居然是这样实现的
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 来源 | https://urlify.cn/bm2qqi Spr ...
- 面试:SpringBoot中的条件注解底层是如何实现的?
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 来源 | https://urlify.cn/bm2qqi Spr ...
- springboot yml怎么建常量_【Java】SpringBoot 中从application.yml中获取自定义常量
由于这里我想通过java连接linux,connection连接需要host.port.username.password及其他路径等等.不想每次修改的时候都去改源文件,所以想写在applicatio ...
- Springboot中给图片添加文字水印
Springboot中给图片添加文字水印 工作中遇到给图片添加文字水印的需求,记录下来方便之后查阅 需求内容: 给一张图片添加指定文字水印,使一张图片上有多个水印内容,并且设定一个水印开关,可指定是否 ...
最新文章
- eclipse 注释星号没对齐_36 个奇葩代码注释,看完笑哭了!
- 云炬WEB开发笔记2-7 代理神器CharlesFiddler
- sun服务器dt消息不能被启动,Sun ONE Application Server 错误
- Qt工作笔记-QGraphics重设场景坐标【标签:Qt图形框架】
- Python中出现 SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 12-13
- synchronized方法与synchronized代码块的区别
- bzoj 1014: [JSOI2008]火星人prefix(splay维护区间+Hash+二分)
- Android 通过软引用实现图片缓存,防止内存溢出
- Flink Hudi 0.10.0 发布,多项重要更新,稳定性大幅提升
- tv盒子管理助手android版本,TV盒子工具 管理电视盒子的好助手
- Apache doris Datax DorisWriter扩展使用方法
- IntelliJ IDEA 配置Jetty启动项目
- 发表SCI或EI类英文文章的投稿经验
- 朴素贝叶斯算法实现垃圾邮件过滤(Python3实现)
- 一度智信开网店靠谱吗
- 计算机考研视频哪个好,计算机考研视频课程哪个好
- win11系统搭建FTP服务器超详细流程
- 公安情报收集工作的新战场——互联网
- onscroll事件没有响应的问题
- Python程序流程控制
热门文章
- C++学习笔记(十五)vector及string
- 献给毕业生:五百强各大行业简介+面试流程+tips
- 基于Qt的类似QQ好友列表抽屉效果的实现
- 1.2描述性统计-离散程度
- imread读取图片的方式
- VS2019 VS2017 指定的任务可执行文件“cmd.exe”未能运行。函数不正确。解决方案
- c语言 define printf,#define和printf不是c语句?那是什么?
- 判断一段时间是否包含令一段时间
- 计算机二级vp是什么意思,江苏计算机二级VP考试复习指导.doc
- Db2 reorg pending state