@Scheduled中的参数及Cron时间表达式

在Spring Boot中设置定时任务时,可以使用注解@Scheduled。@Scheduled注解可以用于标记一个方法,表示该方法需要定时执行。该注解提供了多种参数用于设置定时任务的执行时间和频率。

@Scheduled中的参数解释:

  • fixedDelay:间隔时间,表示多少毫秒之后执行。

  • fixedRate:频率,表示每隔多少毫秒执行一次。如果任务执行时间超过了指定的频率,则会等待任务执行完毕后再执行下一次任务。

  • initialDelay:初始延迟时间,表示在应用启动后多久开始执行定时任务,单位为毫秒。默认为0。

  • cron:用于设置高度定制化的执行时间。支持Cron表达式,例如0 * * * * ?表示每分钟执行一次。

以下是代码示例:

  1. 每3秒执行一次任务:
	@Scheduled(fixedDelay = 3000) 
	public void task() { 
		// todo 
	}
  1. 每隔5秒执行一次任务:
	@Scheduled(fixedRate = 5000) 
	public void task() { 
		// todo 
	}
  1. 延迟2秒后开始执行任务:
	@Scheduled(initialDelay = 2000) 
	public void task() { 
		// todo 
	}
  1. 使用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 * * ?

注:以上示例中,问号(?)表示不指定具体值,星号(*)表示任意值。具体每个元素的定义可查阅相关文档。
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

遥夜人间

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值