@Scheduled注解
发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,1 概述@Scheduled注解是spring boot提供的用于定时任务控制的注解,主要用于控制任务在某个指定时间执行,或者每隔一段时间执行.注意需要配合@EnableScheduling使用,配置
千家信息网最后更新 2025年12月01日@Scheduled注解
1 概述
@Scheduled注解是spring boot提供的用于定时任务控制的注解,主要用于控制任务在某个指定时间执行,或者每隔一段时间执行.注意需要配合@EnableScheduling使用,配置@Scheduled主要有三种配置执行时间的方式,cron,fixedRate,fixedDelay.
2 cron
cron是@Scheduled的一个参数,是一个字符串,以5个空格隔开,只允许6个域(注意不是7个,7个直接会报错),分别表示秒,分,时,日,月,周.
| 单位 | 允许值 | 允许通配符 |
|---|---|---|
| 秒 | 0-59 | , - * / |
| 分 | 0-59 | , - * / |
| 时 | 0-23 | , - * / |
| 日 | 1-31 | , - * / ? L W |
| 月 | 1-12 或 JAN-DEC(大小写均可) | , - * / ? |
| 周 | 1-7 或 SUN-SAT(大小写均可) | , - * / ? L # |
2.1 cron通配符
| 符号 | 含义 |
|---|---|
| * | 所有值.在秒字段上表示每秒执行,在月字段上表示每月执行 |
| ? | 不指定值,不需要关系当前指定的字段的值,比如每天都执行但不需要关心周几,就可以把周的字段设为? |
| - | 区间,如秒的0-2,表示0秒,1秒,2秒都会触发 |
| , | 多个值,比如在0秒,20秒,25秒触发,可以把秒的字段设为0,20,25 |
| / | 递增触发,比如秒的字段上设0/3,从第0秒开始,每隔3秒触发 |
| L | 最后,只允许在日字段或周字段上,在日字段上使用L表示当月最后一天,在周字段上使用3L表示该月最后一个周四 |
| W | 只允许用在日字段上,表示距离最近的该日的工作日.工作日指的是周一至周五 |
| # | 只允许在周字段上,表示每月的第几个周几,如2#3,每月的第3个周二 |
2.2 cron示例
@Scheduled(cron = "0 * * * 1 SAT") //每年的1月的所有周六的所有0秒时间执行@Scheduled(cron = "0 0 0 1 Jan ?") //每年的1月的1日的0时0分0秒执行cron支持占位符,若在配置文件中有
cron = 2 2 2 2 2 ?则
@Scheduled(cron = "${cron}")表示每年的二月二号的两时两分两秒执行.
3 fixedRate
3.1 fixedRate
fixedRate表示自上一次执行时间之后多长时间执行,以ms为单位.
如
@Scheduled(fixedRate = 1000 * 5)自上次执行之后5秒再执行.
3.2 fixedRateString
有一个类似的参数叫fixedRateString,是字符串的形式,支持占位符.
如
@Scheduled(fixedRateString = "1000")自上次执行1秒再执行.
若在配置文件中有相应的属性,可以用占位符获取属性,如在application.properties中有
interval=2000可以使用
@Scheduled(fixedRateStirng="${interval}")表示2秒间隔.
4 fixedDelay
4.1 fixedDelay
fixedDelay与fixedRate有点类似,不过fixedRate是上一次开始之后计时,fixedDelay是上一次结束之后计时,也就是说,fixedDelay表示上一次执行完毕之后多长时间执行,单位也是ms.
@Scheduled(fixedDelay = 1000 * 3600 * 12) //上一次执行完毕后半天后再次执行4.2 fixedDelayString
与fixedRateString类似,也是支持占位符
@Scheduled(fixedDelayString = "${fixedDelay}")5 initialDelay
5.1 initialDelay
initialDelay表示首次延迟多长时间后执行,单位ms,之后按照cron/fixedRate/fixedRateString/fixedDelay/fixedDelayString指定的规则执行,需要指定其中一个规则.
@Scheduled(initialDelay=1000,fixedRate=1000) //首次运行延迟1s5.2 initialDelayString
与initialDelay类似,不过是字符串,支持占位符.
@Scheduled(initialDelayString = "${initialDelay}",cron = "0 0 0 14 4 ?") //按照配置文件initialDelay指定的时间首次延迟,并于每年4月14日0时0分0秒执行
字段
时间
上一
配置
单位
支持
字符
字符串
文件
延迟
注解
上表
任务
参数
大小
属性
工作日
规则
通配符
工作
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全中的拒绝访问
政治手抄报网络安全
软件开发流程 维护
专科选软件开发哪个方向好
关于宣传家长网络安全的内容
服务器是电脑么
美国服务器防cc
申请企业软件开发硬件环境
我的世界斗罗服务器药瓶怎么用
jsp技术与数据库
研究网络安全问题的背景
免费白嫖的服务器
网络技术人员应具备哪些能力
铁三网络安全
sql 数据库字段长度
浙江信大 网络安全
node 简单服务器
我的世界吃鸡服务器电脑
服务器工程报价
数据库通过查询的结果
网络安全与信息化培训视频
怎样做平台软件开发
我的世界红石建筑服务器推荐
御龙在天服务器
云服务器后面可以改吗
中级数据库
泰拉瑞亚1.4手机如何开服务器
泰山区网络安全宣传周活动
网络安全教育活动总结模板
海门软件开发技术