定时任务 cron表达式 ? 和 * 的区别

发布时间:2023-09-07 11:13:55 作者:yexindonglai@163.com 阅读(1180)

1、cron格式

【秒数】【分钟】【小时】【日期】【月份】【星期几】【年份(可省略)】

2、关于【日期】与【星期几】的说明

1、【日期】与【星期几】两者为互斥的,不能同时设置。这个比较容易理解,假设日期设置为1,星期几也设置为1,那含义是什么:每月1日且为周一时触发,可能一年之中没用任何天能满足上述条件,更重要的是什么人能有这种xx的需求呢?

2、【日期】与【星期几】中任何一个设置值(包含 *),另一个必需使用 来进行屏蔽,此时 起到屏蔽的作用。只能出现在【日期】与【星期几】中,且不能同时出现, 比如以下是 每10秒触发任务的表达式

  1. 10 * * * * ? //合法
  2. 10 * * * ? * //合法
  3. 10 * * * ? ? //非法
  4. 10 * * * * * //非法

3、常用表达式符号说明:

* 表示任意值都满足触发条件

, 表示列表项目的分割,如 秒数中设置 1,3,17,则表示秒数为1,3,17时满足触发条件

- 表示连续的列表范围,如 秒数中设置 1-5,则表示秒数为1到5时,均满足触发条件

/ 正常的用法为 x/y,x表示触发的起始数值,y表示后续间隔,如 秒数中设置 5/20,则表示从第5秒开始触发,然后每隔20秒再循环触发(25、45,下次循环5、25、45…)

4、表达式举例

  1. 10 * * * * ? 10秒触发任务
  2. 10 10 * * * ? 每小时的1010秒触发任务
  3. 10 10 1 * * ? 每天11010秒触发任务
  4. 0 0 10,14,18 * * ? 每天101418点触发任务
  5. 0 0/20 9-17 * * ? 每天9-17点,20分钟触发任务
  6. 0 * 12 * * ? 每天12:00 - 12:59期间的每1分钟触发
  7. 0 0/3 12 * * ? 在每天12:00 - 12:59期间的每3分钟触发
  8. 0 0-5 12 * * ? 在每天12:00 - 12:05期间的每1分钟触发
  9. 10 10 1 12 * ? 每月1211010秒触发任务
  10. 10 10 1 ? * 2 每周111010秒触发任务
  11. 10 10 1 20 10 ? 2021 2021102011010秒触发任务
  12. 10 10 1 * 10 ? 2021 202110月每天11010秒触发任务
  13. 10 10 1 ? 10 * 2021 202110月每天11010秒触发任务
  14. 10 10 1 ? 10 7 2021 202110月每周6 11010秒触发任务

附:在线生成cron表达式:https://cron.qqe2.com/

关键字定时任务