@Scheduled中的参数及Cron时间表达式用法详解
更新时间:2026年05月09日 10:19:43 作者:Nvr:4ever
在SpringBoot中使用@Scheduled注解设置定时任务,可设置fixedDelay、fixedRate、initialDelay和cron参数,首句概括,后续分条列出参数解释和Cron表达式格式,最后给出示例
在Spring Boot中设置定时任务时,可以使用注解@Scheduled。
@Scheduled注解可以用于标记一个方法,表示该方法需要定时执行。
该注解提供了多种参数用于设置定时任务的执行时间和频率。
@Scheduled中的参数解释
fixedDelay:间隔时间,表示多少毫秒之后执行。fixedRate:频率,表示每隔多少毫秒执行一次。如果任务执行时间超过了指定的频率,则会等待任务执行完毕后再执行下一次任务。initialDelay:初始延迟时间,表示在应用启动后多久开始执行定时任务,单位为毫秒。默认为0。cron:用于设置高度定制化的执行时间。支持Cron表达式,例如0 * * * * ?表示每分钟执行一次。
以下是代码示例:
- 每3秒执行一次任务:
@Scheduled(fixedDelay = 3000)
public void task() {
// todo
}
- 每隔5秒执行一次任务:
@Scheduled(fixedRate = 5000)
public void task() {
// todo
}
- 延迟2秒后开始执行任务:
@Scheduled(initialDelay = 2000)
public void task() {
// todo
}
- 使用Cron表达式每天凌晨2点执行任务:
@Scheduled(cron = "0 0 2 * * ?")
public void task() {
// todo
}
cron时间表达式
cron表达式是一种时间表达式,可以用于表示基于时间的任务调度。它由6个时间部分组成,分别表示秒、分、时、日期、月份和星期,在不同的位置上使用不同的符号来表示取值范围或取值。
下面是一个cron表达式的格式: 秒 分 时 日 月 周 计划执行的命令或脚本
常用的时间符号有以下几种:
- 星号(*): 表示所有值,例如在小时的位置上设置星号就表示每个小时都会执行。
- 逗号(,): 表示枚举值,多个值之间用逗号隔开。
- 中横线(-): 表示范围,例如在小时的位置上设置为 5-10 就表示 从5到10小时都会被执行。
- 斜杠(/): 表示步长,例如在小时的位置上设置为 */2 就表示每隔2小时执行一次。
示例:
1.每天凌晨1点执行定时任务: 0 0 1 * * ? 2.每隔30分钟执行一次定时任务: 0 0/30 * * * ? 3.在工作日上午9点到下午5点之间,每隔2分钟执行一次定时任务: 0 0/2 9-17 * * MON-FRI 4.每周日晚上10点执行定时任务: 0 0 22 * * SUN 5.每个月最后一天的晚上11点执行定时任务: 0 0 23 L * ? 6.每个季度的第一个月的第一天早上6点执行定时任务: 0 0 6 1 JAN,APR,JUL,OCT ? 7.每天早上6点到晚上10点之间,每小时5分钟执行一次定时任务: 0 5 6-22/1 * * ? 注:以上示例中,问号(?)表示不指定具体值,星号(*)表示任意值。具体每个元素的定义可查阅相关文档。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
Sleuth+logback 设置traceid 及自定义信息方式
这篇文章主要介绍了Sleuth+logback 设置traceid 及自定义信息方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2021-07-07


最新评论