本文主要是介绍cron 表达式语法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Cron表达式基本结构
Cron表达式由七部分组成,每部分由空格分隔,从左到右依次是:
- 秒(0~59)
- 分钟(0~59)
- 小时(0~23)
- 日期(1-月最后一天)
- 月份(1-12 或 JAN-DEC)
- 星期几(1-7, 1表示星期日 或 SUN-SAT)
- 年份(可选,留空)
通用特殊字符
*
:表示任意值,例如* * * * * ?
表示每年每月每天每时每分每秒。
,
:表示列表,例如1,2,3 * * * * ?
表示每年每月每天每时每分的每个第1秒、第2秒、第3秒。
-
:定义范围,例如1-3 * * * * ?
表示每年每月每天每时每分的第1秒至第3秒。
/
:表示每隔多少,例如5/10 * * * * ?
表示从第5秒开始,每10秒一次。
日期和星期的特殊字符
?
:只能用在日期和星期部分,表示没有具体的值。日期和星期两个部分如果其中一个部分设置了值,则另一个必须设置为?
。
L
:表示最后(Last),只能用在日期和星期中。在日期中表示每月最后一天,在星期中表示7(星期六),也可结合使用如LW
表示每月最后一个工作日。
W
:只能用在日期中,表示当月中最接近某天的工作日。
#
:只能用在星期中,表示第几个星期几,例如6#3
表示每月的第三个星期五。
示例
0/5 * * * * ?
:表示每秒的第0秒开始,每隔5秒执行一次。
0 0 8-10 ? * *
:表示在上午8点、9点和10点的每分钟的第0秒执行。
0 0/30 8-10 ? * *
:表示在上午8点、9点和10点,每隔30分钟执行一次。
0 0 8 ? * MON-FRI
:表示在上午8点的每分钟的第0秒,星期一到星期五执行。
0 0 8 L * ?
:表示在每月的最后一天的上午8点的每分钟的第0秒执行。
0 0 8 ? * 6L
:表示在每月的最后一个星期六的上午8点的每分钟的第0秒执行。
0 0 8 ? * 6#3
:表示在每月的第三个星期六的上午8点的每分钟的第0秒执行。
Spring Boot中使用Cron表达式
在Spring Boot中,可以使用@Scheduled
注解配合Cron表达式来定义定时任务。
@Component
public class TestJob { @Scheduled(cron = "0/5 * * * * ?") public void testJob() { System.out.println("定时任务执行了"); }
}
以上就是在Spring Boot中如何使用Cron表达式来定义定时任务的简单示例。
这篇关于cron 表达式语法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!