Cron表达式学习

2020-09-24 19:07:26

常用规则助记

Cron表达式是一个以5或6个空格隔开为6或7个域的字符串

结构

左->右:

顺序 秒数 分钟 小时 日期 月份 星期 年(可选)
取值 0-59 0-59 0-23 1-30(31) 1-12或JAN-DEC 1-7或SUN-SAT 1970-2099
特殊字符 , - * / , - * / , - * / , - * / ? L W C , - * / , - * / L # C , - * /

每一个域都使用数字,也可出现特殊字符:

字符 用途 例子
* 匹配该域的任意值 分钟域使用*, 表示每分钟都会触发事件
? 只能用在日期和星期两个域 每月的20日触发调度:13 13 15 20 * ?
- 范围 分钟域使用5-20:从5分到20分钟每分钟触发一次
/ 起始时间开始触发,然后每隔固定时间触发一次 分钟域使用5/20:5分钟触发一次,而25,45等分别触发一次
, 列出枚举值 分钟域使用5,20:在5和20分每分钟触发一次
L 最后,只能出现在星期和日期域 在星期域使用5L:在最后的一个星期四触发
W 有效工作日(周一到周五),只能出现在日期域,在离指定日期的最近的有效工作日触发事件 5W:星期六->星期五;星期天->周一
LW 在某个月最后一个工作日 最后一个星期五
# 确定每个月第几个星期几,只能出现在日期域 6#3:某月的第三个周五

注意:在 Cron 表达式中的“日”和“星期”字段同时指定值时,两者为“或”关系,即两者的条件分别均生效

示例

  • */5 * * * * * * 表示每5秒触发一次
  • 0 * * * * ? 每1分钟触发一次
  • 0 0 * * * ? 每天每1小时触发一次
  • 0 0 10 * * ? 每天10点触发一次
  • 0 0 2 1 * * * 表示在每月的1日的凌晨2点触发
  • 0 15 10 * * MON-FRI * 表示在周一到周五每天上午10:15触发
  • 0 0 10,14,16 * * * * 表示在每天上午10点,下午2点,4点触发
  • 0 */30 9-17 * * * * 表示在每天上午9点到下午5点内每半小时触发
  • 0 0 12 * * WED * 表示在每个星期三中午12点触发
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-ND 3.0 许可协议。可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。

扫描下方二维码阅读当前文章

浏览器、微信扫码

评 论:

好文推荐
每天进步一点点~