三分钟学会cron 表达式

2024-01-10 08:42:54

Cron 表达式

Cron 表达式是一种用于配置定时任务的时间表达式。它由六个字段组成,分别表示分钟、小时、日期、月份、星期和年份。

Cron 表达式的格式如下:

* * * * * *
| | | | | |
| | | | | +-- Year (optional)
| | | | +---- Day of the Week (0-7, Sunday is 0 or 7)
| | | +------ Month (1-12)
| | +-------- Day of the Month (1-31)
| +---------- Hour (0-23)
+------------ Minute (0-59)

每个字段可以包含以下取值:

  • 秒(可选):0-59
  • 分钟:0-59
  • 小时:0-23
  • 日期:1-31
  • 月份:1-12
  • 星期:0-7(其中0和7都表示周日)
  • 年份(可选):留空或指定的年份

在字段中,还可以使用以下特殊字符和符号:

  • “*”:匹配该字段的所有可能值。
  • “/”:指定增量值。例如,“*/5” 表示每隔 5 单位执行一次。
  • “-”:指定范围值。例如,“1-3” 表示 1、2 和 3。
  • “,”:指定多个值。例如,“1,3,5” 表示 1、3 和 5。

下面是一些示例:

  • “0 0 * * * *”:每天的午夜触发任务。
  • “0 12 * * MON-FRI”:每个工作日的中午 12 点触发任务。
  • “0 */2 * * *”:每隔两个小时触发任务。
  • “0 0 1 1 * *”:每年的 1 月 1 日午夜触发任务。

请注意,Cron 表达式是在服务器的本地时间上运行的。因此,确保在设置定时任务时正确理解和转换为适合您所在时区的时间。

一些常用示例

常用示例:

  • “0 0 * * * *”:每天的午夜触发任务。
  • “0 12 * * * *”:每天的中午 12 点触发任务。
  • “0 0 */2 * * *”:每隔两天的午夜触发任务。
  • “0 0 8-18 * * *”:每天上午 8 点到下午 6 点之间每隔一小时触发任务。
  • “0 0 9,12,15 * * *”:每天上午 9 点、中午 12 点和下午 3 点触发任务。
  • “0 0/30 9-17 * * MON-FRI”:每个工作日上午 9 点到下午 5 点之间每隔 30 分钟触发任务。
  • “0 0 10,14 * JAN,FEB,MAR *”: 一月、二月和三月的每个周一和周二的上午 10 点和下午 2 点触发任务。
  • “0 0 0 25 12 ?”:每年的圣诞节午夜触发任务。

每天的早上 8 点 30 分

要每天的早上 8 点 30 分执行任务,您可以使用以下的 Cron 表达式:

30 8 * * *

这个表达式的含义是:在每天的第 8 小时 30 分的时候触发任务。其中,“30”表示分钟字段,而“8”表示小时字段。星号 (*) 表示该字段可以匹配任意值。

每天的早上 8 点和下午 2 点分别执行

要在每天的早上 8 点和下午 2 点分别执行任务,
您可以使用两个 Cron 表达式,如下所示:

写法一

0 8 * * *
0 14 * * *

第一个表达式表示在每天的第 8 小时触发任务,第二个表达式表示在每天的第 14 小时触发任务。其中,“0”表示分钟字段,而“8”和“14”分别表示小时字段。星号 (*) 表示该字段可以匹配任意值。

写法二

可以将两个时间合并为一个 Cron 表达式,如下所示:

0 8,14 * * *

这个表达式的含义是,在每天的第 8 小时和第 14 小时的时候触发任务。其中,“0”表示分钟字段,而“8,14”表示小时字段,表示早上 8 点和下午 2 点。星号 (*) 表示该字段可以匹配任意值。

请注意,这个 Cron 表达式是基于服务器的本地时间运行的。如果您的服务器位于不同的时区,请根据需要进行调整。

常见的两个Cron在线表达式生成器地址

https://cron.ciding.cc/

https://cron.qqe2.com/

文章来源:https://blog.csdn.net/m0_57021623/article/details/135438640
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。