cron表达式

简介: cron表达式

一、字段释意

00/5***

() () 年份(一般省略)

## 二、符号释意

*:表示所有可能的值

 

/:表示数值的增量,简单来说,比如分写上0/5表示从0分开始,每隔5分钟

 

?:仅用在天()和天(),表示不指定值,当其中一个有值时,另外一个需要设为?

三、字段允许字符

1、秒:0-59,-*/

  • 26:表示第 26 秒
  • 5,16,27:表示第 5 秒、第 16 秒和第 27 秒
  • 1-5:表示从 1 秒到 5 秒,就是 1 2 3 4 5 秒
  • *:表示每一秒
  • 2/15:表示从第 2 秒开始,每隔 15 秒,就是 2 17 32 47 秒

2、分:0-59,-*/

根据上述的秒,同理可得

  • 26:表示第 26 分钟
  • 5,16,27:表示第 5 分钟、第 16 分钟和第 27 分钟
  • 1-5:表示从 1 秒到 5 分,就是第 1 2 3 4 5 分钟
  • *:表示每一分钟
  • 2/15:表示从第 2 分钟开始,每隔 15 分钟,就是 2 17 32 47 分钟

时:0-23,-*/

  • 10:表示早上 10 点
  • 22:表示晚上 10 点
  • 2,8,18,23:表示凌晨 2 点,早上 8 点,傍晚 6 点和晚上 11 点
  • 9-17:表示朝九晚五,就是 9 10 11 12 13 14 15 16 17 点
  • *:表示每小时
  • 10/2:表示从早上 10 点开始,每隔 2 小时

天(月):1-31,-*/?LWC

  • 31:表示 31 号(注意有的月份是没有 31 号的)
  • 5,10,15:表示 5 号、10 号和 15 号
  • 8-17:表示 8 号到 17 号
  • *:表示所有可能的值(当指定为星号时,天(周)需指定为?)
  • 5/9:表示从 5 号开始,每隔 9 天
  • ?:当天(周)指定任意值的时候,天(月)需要设置为?
  • L:表示一个月中的最后一天
  • 6L:表示倒数第 6 天
  • 15W:W 指工作日,如果 15 号不是周六日,则表示 15 号当天;如果 15 号是周六,则表示 14 号;如果 15 号是周日,则表示 16 号;如果 31W 是周日,则 31W 表示 29 号(周五),不会跨月
  • LW:指最后一个工作日
  • 15C:表示第 15 天(不是很明白这个,使用 15 和 15C 貌似效果相同?)

月:1-12,-*/

  • 10:表示 10 月份
  • 5,10,11:表示 5 月份、10 月份和 11 月份
  • 4-8:表示 4 月份到 8 月份
  • *:表示所有可能的值
  • 5/2:表示从 5 月份开始,每隔 2 个月,(就是 5 7 9 11 次年 5 次年 7 次年 9…)
  • 1-12:也可以用 JAN-DEC 表示

天(周):MON-SAT,-*/?LC#

  • MON:表示周一
  • MON,TUE,FRI:表示周一,周二和周五
  • MON-FRI:表示从周一到周五
  • MON-WED,SAT:表示从周一到周三,和周六(就是周一、周二、周三和周六)
  • mon,tue,wed,thu,fri,sat,sun:表示周一到周日(大小写均可,取星期英文前三个字母,注意星期四是 thu,而不是 thur)
  • 7L:表示最后一个周六(效果等同于 SATL)(L 表示 last 最后的意思,7 表示周六,6 表示周五,类推,1 表示周日)
  • 6C:表示周五以及之后包含周五的日期(感觉效果 FRI 一样,具体还没深究)
  • 7#2:表示第二个周六(# 前面的数字表示星期,1 表示周日,2 表示周一,以此类推;# 后面的数字表示第几个)

年:留空2020-2099,-*/

  • 2050:表示 2050 年
  • 2020,2030,2040:表示 2020 年、2030 年和 2040 年
  • 2020-2030:表示 2020 年到 2030 年
  • *:表示所有可能的值
  • 2020/10:表示从 2020 年开始,每隔 10 年,(就是 2020,2030,2040…)

四.例子

  • 每隔 5 分钟执行一次(从 0 分开始)

0 0/5 * * * ?

  • 从 0 时开始,每小时执行一次

0 0 0/1 * * ?

  • 每天的 7 点 30 分

0 30 7 * * ?

  • 工作日的早上 6 点 30 分(即是周一到周五,每天早上的 6 点 30 分)

0 30 7 ? * MON-FRI

  • 每个月的最后一天早上的 10 点整

0 0 10 L * ?

  • 每个月的最后一个工作日的晚上 6 点 30 分(18:30)

0 30 18 LW * ?

  • 朝九晚五,每小时

0 0 9-17 * * ?

  • 2020 年的 8 月份每个星期六和星期日早上 10 点 28 分 28 秒

28 28 10 ? 8 1,7 2020

  • 每个月的倒数第二天的早上 8 点整

0 0 8 L-1 * ?

  • L 表示最后一天(倒数第一天),L-1 则表示倒数第二天,以此类推

五.要点

  • 一般是有 6 个位置,分别表示 分 秒 时 天 (月) 月 天 (周) 第 7 个位置是年,一般省略
  • 6 个位置中的 天 (月) 表示一个月中的第几天,即是几月几号中的几号;天 (周) 表示一周中的第几天,周日为第一天,周六为第七天
  • 天 (月) 天 (周)不能同时指定,其中必定有一个是 ?
  • ? 只能用在 天 (月) ****天 (周)
  • 2-10:符号 - 表示范围区间
  • 2/10:符号 / 表示频率,从 2 开始,每隔 10,即 2,12,22… 类推
  • 2,10:符号 , 表示和,2,10表示 2 和 10
  • L:last 的缩写,表示最后,只能用在天 (月) 和天 (周),一般和数字搭配使用,如 L 在天 (月) 中表示一个月中的最后一天,L-1 则表示每个月的倒数第二天;3L 在天 (周) 中则表示最后一个星期二
相关文章
cron表达式
cron表达式: 定时任务触发时间的一个字符串表达形式 corn表达式是一个字符串,分为6或7个域,每一个域代表一个含义 结构:cron从左到右(用空格隔开):秒 分 小时 月份中的日期 月份 星期中的日期 年份
cron表达式
|
2天前
|
缓存 BI 数据处理
Cron表达式浅析
Cron表达式浅析
|
19天前
|
数据可视化 JavaScript 前端开发
Cron表达式(七子表达式)
Cron表达式(七子表达式)
21 1
|
6月前
|
调度
【Cron表达式】cron表达式详细介绍以及常用的例子
【Cron表达式】cron表达式详细介绍以及常用的例子
271 0
|
3月前
Cron表达式每周三周五18点执行
Cron表达式每周三周五18点执行
|
3月前
Cron表达式每月20号晚18点执行
Cron表达式每月20号晚18点执行
|
4月前
|
JavaScript 前端开发 Unix
一篇学会cron表达式
# 1、定义 Cron表达式是一种用于定义定时任务的格式化字符串。它被广泛用于Unix、Linux和类Unix系统中,用于在指定的时间执行预定的任务。Cron表达式由6个字段组成,每个字段通过空格分隔开。 在本文中,我们将学习如何理解和编写Cron表达式。 Cron表达式的格式如下: ```javascript * * * * * * | | | | | | | | | | | +-- 星期(周日=0 或 7) | | | | +---- 月份(1-12) | | | +------ 日期(1-31) | | +-------- 小时(0-23) | +-------
96 1
一篇学会cron表达式
|
9月前
|
调度
Cron表达式详解
Cron表达式详解
203 1
|
调度
SpringTask中Cron表达式
?:只能用在DayofMonth和DayofWeek两个域。它也匹配域的任意值,但实际不会。因为DayofMonth和 DayofWeek会相互影响。例如想在每月的20日触发调度,不管20日到底是星期几,则只能使用如下写法: 13 13 15 20 * ?, 其中最后一位只能用?,而不能使用*,如果使用*表示不管星期几都会触发,实际上并不是这样。
89 0