Cron表达式

简介: Cron表达式

1、介绍

Cron表达式是一个用 6~7 个占位符表示的具有表述时间的表达式,一般用于执行定时任务或类似功能。 一般格式为以下两种:

  • x x x x x x
  • x x x x x x x

其中x 代表一个占位符,或称之为。每两个占位符之间用空格隔开。

其表述的含义为:

  • {秒数} {分钟} {小时} {日期} {月份} {星期}
  • {秒数} {分钟} {小时} {日期} {月份} {星期} {年份(非必填)}


2、占位符

*:表示任意值,比如如果在分钟位,也就是第二个占位符填写*,即表示每分钟都会触发事件


?:不指定值,仅日期和星期域支持该字符。当日期或星期域其中之一被指定了值以后,为了避免冲突,需要将另一个域的值设为?。比如,如果希望在每月的 1 号触发事件,则只能使用如下写法: 0 0 0 1 * ?, 不管 1 号当天到底是星期几,其中最后一位只能用?,而不能使用*。


,:在分钟域中,0 5,20 * * * * 表示每小时的第 5 分钟和第 20 分钟分别触发一次。


-:表示范围:比如0 5-20 * * * *表示每小时从第 5 分钟到第 20 分钟,每隔分钟触发1次


L:单词Last的首字母,表示最后一天,仅日期和星期域支持该字符。


在日期域中,L表示某个月的最后一天。在星期域中,L表示一个星期的最后一天,也就是星期日(SUN)。

如果在L前有具体的内容,例如,在星期域中的6L表示这个月的最后一个星期六。

W:表示有效工作日(周一到周五),只能出现在DayofMonth域,系统将在离指定日期的最近的有效工作日触发事件。例如:在 DayofMonth使用5W,如果5日是星期六,则将在最近的工作日:星期五,即4日触发。如果5日是星期天,则在6日(周一)触发;如果5日在星期一到星期五中的一天,则就在5日触发。另外一点,W的最近寻找不会跨过月份 。


#:确定每个月第几个星期几,仅星期域支持该字符。在星期域中,4#2表示某月的第二个星期四。


3、 域取值范围


1685521695286.png

4、示例

1685521717421.png

1685521761679.png


相关文章
|
1天前
|
Unix Linux
Cron介绍,以及常见的cron表达式
Cron介绍,以及常见的cron表达式
|
14天前
|
缓存 BI 数据处理
Cron表达式浅析
Cron表达式浅析
17 1
|
1月前
|
数据可视化 JavaScript 前端开发
Cron表达式(七子表达式)
Cron表达式(七子表达式)
21 1
|
7月前
|
调度
【Cron表达式】cron表达式详细介绍以及常用的例子
【Cron表达式】cron表达式详细介绍以及常用的例子
283 0
|
4月前
Cron表达式每周三周五18点执行
Cron表达式每周三周五18点执行
|
4月前
Cron表达式每月20号晚18点执行
Cron表达式每月20号晚18点执行
|
5月前
|
JavaScript 前端开发 Unix
一篇学会cron表达式
# 1、定义 Cron表达式是一种用于定义定时任务的格式化字符串。它被广泛用于Unix、Linux和类Unix系统中,用于在指定的时间执行预定的任务。Cron表达式由6个字段组成,每个字段通过空格分隔开。 在本文中,我们将学习如何理解和编写Cron表达式。 Cron表达式的格式如下: ```javascript * * * * * * | | | | | | | | | | | +-- 星期(周日=0 或 7) | | | | +---- 月份(1-12) | | | +------ 日期(1-31) | | +-------- 小时(0-23) | +-------
97 1
一篇学会cron表达式
|
10月前
|
调度
Cron表达式详解
Cron表达式详解
207 1
|
调度
SpringTask中Cron表达式
?:只能用在DayofMonth和DayofWeek两个域。它也匹配域的任意值,但实际不会。因为DayofMonth和 DayofWeek会相互影响。例如想在每月的20日触发调度,不管20日到底是星期几,则只能使用如下写法: 13 13 15 20 * ?, 其中最后一位只能用?,而不能使用*,如果使用*表示不管星期几都会触发,实际上并不是这样。
89 0