java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > @Scheduled参数及Cron时间表达式

@Scheduled中的参数及Cron时间表达式用法详解

作者:Nvr:4ever

在SpringBoot中使用@Scheduled注解设置定时任务,可设置fixedDelay、fixedRate、initialDelay和cron参数,首句概括,后续分条列出参数解释和Cron表达式格式,最后给出示例

在Spring Boot中设置定时任务时,可以使用注解@Scheduled。

@Scheduled注解可以用于标记一个方法,表示该方法需要定时执行。

该注解提供了多种参数用于设置定时任务的执行时间和频率。

@Scheduled中的参数解释

以下是代码示例:

  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表达式的格式: 秒 分 时 日 月 周 计划执行的命令或脚本

常用的时间符号有以下几种:

示例:

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 * * ?

注:以上示例中,问号(?)表示不指定具体值,星号(*)表示任意值。具体每个元素的定义可查阅相关文档。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文