问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

Cron表达式详解

创作时间:
作者:
@小白创作中心

Cron表达式详解

引用
CSDN
1.
https://blog.csdn.net/yuanmayuzhou/article/details/131417682

Cron表达式是一种常用的时间调度方式,它通过字符串的形式来表示任务的执行时间。每个字段代表了一种时间单位,包括分钟、小时、日期、月份和星期几。Cron表达式通常由6个或7个字段组成,具体取决于实现方式。

1. Cron表达式的概念

一个标准的Cron表达式的格式如下:

* * * * * *
| | | | | |
| | | | | +-- 年份(可选)
| | | | +---- 星期几(0 - 7,0 和 7 表示星期日)
| | | +------ 月份(1 - 12)
| | +-------- 日期(1 - 31)
| +---------- 小时(0 - 23)
+------------ 分钟(0 - 59)

2. Cron表达式的取值范围

每个字段都可以使用不同的取值来指定任务执行的时间。这里有一些常用的取值方式:

  • 分钟(0 - 59):可以指定具体的分钟数,如 01530,或者使用通配符 * 表示每分钟都执行。
  • 小时(0 - 23):可以指定具体的小时数,如 1922,或者使用通配符 * 表示每小时都执行。
  • 日期(1 - 31):可以指定具体的日期,如 11531,或者使用通配符 * 表示每天都执行。
  • 月份(1 - 12):可以指定具体的月份,如 1612,或者使用通配符 * 表示每个月都执行。
  • 星期几(0 - 7):可以指定具体的星期几,如 1(表示星期一)、5(表示星期五)、07(表示星期日),或者使用通配符 * 表示每天都执行。

除了通配符 * 之外,还可以使用逗号 , 来指定多个取值,使用连字符 - 来指定一个范围,使用斜线 / 来指定一个步长。例如,0 0 8-10 * * * 表示在每天的8点、9点和10点整执行任务。

3. Cron表达式的特殊字符串

在一些实现中,还可以使用特殊的字符串来表示其他含义,比如:

  • @yearly:等同于 0 0 1 1 * *,表示每年的1月1日零点执行任务。
  • @monthly:等同于 0 0 1 * * *,表示每个月的1日零点执行任务。
  • @weekly:等同于 0 0 * * 0 *,表示每个星期日的零点执行任务。
  • @daily@midnight:等同于 0 0 * * * *,表示每天的零点执行任务。
  • @hourly:等同于 0 * * * * *,表示每小时的零分执行任务。

Cron表达式提供了一种灵活的方式来定义任务的执行时间,使得定期任务的调度变得简单和可靠。

4. Cron表达式示例

表达式
说明
0 0 * * * *
每小时零分执行任务
0 30 8 * * *
每天上午8点30分执行任务
0 0 12 * * MON
每个星期一中午12点执行任务
0 0 1 1 * *
每年的1月1日凌晨1点执行任务
0 0 15 * 1-5 *
每个工作日下午3点执行任务
0 0/15 * * * *
每15分钟执行一次任务
0 0 0 1 1,4,7 *
每年的1月1日和4月1日和7月1日午夜执行任务
0 0 8 1/3 * *
每隔3个月的第一天上午8点执行任务
0 0 0 * * SAT
每个星期六午夜执行任务
0 0 12 * * 1-5
每个工作日中午12点执行任务
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号