cron调度表达式

一、cron表达式

1.1 基本介绍

  Cron表达式是一种用于指定定时任务的时间表达式,常用来指定任务的执行时间、执行频率和执行间隔。它由6~7个字段组成,分别表示秒、分、时、日期、月份、星期、年份(可省略)。

1.2 字段取值和取值范围

下表为Cron表达式中七个字段的取值范围和支持的特殊字符:

字段是否必须取值范围特殊字符
秒(Seconds)[0, 59]* , - /
分 (Minutes)[0, 59]* , - /
小时 (Hours)[0, 23]* , - /
日期 (Day of month)[1, 31]* , - / ? L W
月 (Month)[1, 12] 或 [JAN, DEC]* , - /
星期 (Day of week)[1, 7] 或 [MON, SUN]* , - / ? L #
[当前年份,2099]* , - /

1.3 特殊字符

Cron表达式中的每个字段都支持特殊字符,每个特殊字符都有其特殊含义。

特殊字符含义示例
*匹配任意值在字段月中,*表示每个月
,列出枚举值在字段分钟中,5,20表示分别在5分钟和20分钟触发一次
-指定范围在字段分钟中,5-20表示从5分钟到20分钟之间每隔一分钟触发一次
/指定数值的增量在字段分钟中,0/15表示从第0分钟开始,每15分钟。在字段分钟中3/20表示从第3分钟开始,每20分钟。
?不指定值,仅用于日期星期当字段日期或星期其中之一被指定了值以后,为了避免冲突,需要将另一个字段的值设为?。
L单词Last的首字母,表示最后一天,仅字段日期星期支持该字符。在字段日期中,L表示某个月的最后一天。在字段星期中,L表示一个星期的最后一天,也就是星期日(SUN)。
W除周末以外的有效工作日,在离指定日期的最近的有效工作日触发事件。W字符寻找最近有效工作日时不会跨过当前月份,连用字符LW时表示为指定月份的最后一个工作日。仅字段日期支持该字符在字段日期中5W,如果5日是星期六,则将在最近的工作日星期五,即4日触发。如果5日是星期天,则将在最近的工作日星期一,即6日触发;如果5日在星期一到星期五中的一天,则就在5日触发。
#确定每个月的第几个星期几。仅字段星期支持该字符。在字段星期中,4#2表示某月的第二个星期四。
  • L,指定L字符时,避免指定列表或范围,否则会导致逻辑问题。如果在L前有具体的内容,例如,在字段星期中的6L表示这个月的最后一个星期六。

1.4 示例

1.4.1 每天固定时间执行

  • 0 15 10 ? * *,每天上午10:15执行任务
  • 0 0 12 * * ?,每天中午12:00执行任务

1.4.2 每天多个固定时间执行

  • 0 0 10,14,16 * * ?,每天上午10:00点、下午14:00以及下午16:00执行任务

1.4.3 每间隔一段时间执行

  • 0 0/30 9-17 * * ?,每天上午09:00到下午17:00时间段内每隔半小时执行任务
  • 0 * 14 * * ?,每天下午14:00到下午14:59时间段内每隔1分钟执行任务
  • 0 0-5 14 * * ?,每天下午14:00到下午14:05时间段内每隔1分钟执行任务
  • 0 0/5 14 * * ?,每天下午14:00到下午14:55时间段内每隔5分钟执行任务
  • 0 0/5 14,18 * * ?,每天下午14:00到下午14:55、下午18:00到下午18:55时间段内每隔5分钟执行任务

1.4.4 特定星期/日期执行

  • 0 0 12 ? * WED,每个星期三中午12:00执行任务
  • 0 15 10 15 * ?,每月15日上午10:15执行任务
  • 0 15 10 L * ?,每月最后一日上午10:15执行任务
  • 0 15 10 ? * 6L,每月最后一个星期六上午10:15执行任务
  • 0 15 10 ? * 6#3,每月第三个星期六上午10:15执行任务

1.4.5 特定年份的特定日期执行

  • 0 10,44 14 ? 3 WED,每年3月的每个星期三下午14:10和14:44执行任务
  • 0 15 10 ? * * 2022,2022年每天上午10:15执行任务
  • 0 15 10 ? * * *,每年每天上午10:15执行任务
  • 0 0/5 14,18 * * ? 2022,2022年每天下午14:00到下午14:55、下午18:00到下午18:55时间段内每隔5分钟执行任务
  • 0 15 10 ? * 6#3 2022,2023,2022年至2023年每月第三个星期六上午10:15执行任务
  • 0 0/30 9-17 * * ? 2022-2025,2022年至2025年每天上午09:00到下午17:30时间段内每隔半小时执行任务
  • 0 10,44 14 ? 3 WED 2022/2,从2022年开始,每隔两年3月的每个星期三下午14:10和14:44执行任务

1.5 cron工具

参考文献:
1.Cron表达式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值