Corn表达式用法

简述

Cron 表达式是一个具有时间含义的字符串,字符串以 5~6 个空格隔开,分为 6~7 个域,格式为X X X X X X。其中X是一个域的占位符。最后一个代表年份的域非必须,可以省略。单个域有多个取值时,使用半角逗号,隔开取值。每个域可以是确定的取值,也可以是具有逻辑意义的特殊字符,每个域最多支持一个前导零。例如

指定 2022 年每天上午 8:15 执行任务,Cron 表达式可指定为 `0 15 8 ? * * 2022`或者
  `0 15 08 ? * * 2022`,但是不能指定为`0 15 008 ? * * 2022`

 域的取值及字符用法

是否必需取值范围特殊字符
[0, 59]* , - /
分钟[0, 59]* , - /
小时[0, 23]* , - /
日期[1, 31]* , - / ? L W
月份[1, 12]或[JAN, DEC]* , - /
星期[1, 7]或[MON, SUN]。若您使用[1, 7]表达方式,1代表星期一,7代表星期日。* , - / ? L #
[当前年份,2099]* , - /

用法实例

示例说明
0 15 10 ? * *每天上午10:15执行任务
0 15 10 * * ?每天上午10:15执行任务
0 0 12 * * ?每天中午12:00执行任务
0 0 10,14,16 * * ?每天上午10:00点、下午14:00以及下午16:00执行任务
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分钟执行任务
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执行任务
0 10,44 14 ? 3 WED每年3月的每个星期三下午14:10和14:44执行任务
0 15 10 ? * * 20222022年每天上午10:15执行任务
0 15 10 ? * * *每年每天上午10:15执行任务
0 0/5 14,18 * * ? 20222022年每天下午14:00到下午14:55、下午18:00到下午18:55时间段内每隔5分钟执行任务
0 15 10 ? * 6#3 2022,20232022年至2023年每月第三个星期六上午10:15执行任务
0 0/30 9-17 * * ? 2022-20252022年至2025年每天上午09:00到下午17:30时间段内每隔半小时执行任务
0 10,44 14 ? 3 WED 2022/2从2022年开始,每隔两年3月的每个星期三下午14:10和14:44执行任务

Cron表达式是一种用于指定定时任务执行时间的字符串表示方法,随着Unix操作系统的普及和互联网的发展,逐渐成为通用的定时任务设置语法,被广泛应用于各种计算机系统和应用程序中,目前已成为计算机科学中的基本概念,被包括Java、Python、Ruby等编程语言在内的许多软件框架和库所支持和应用[^2]。 ### 语法结构 Cron表达式由多个字段组成,每个字段代表不同的时间单位,标准的Cron表达式包含6个或7个字段,分别表示秒(可选)、分、时、日、月、周。示例如下: ```plaintext * * * * * * ┬ ┬ ┬ ┬ ┬ ┬ │ │ │ │ │ | │ │ │ │ │ └ day of week (0 - 7, 1L - 7L) (0 or 7 is Sun) │ │ │ │ └───── month (1 - 12) │ │ │ └────────── day of month (1 - 31, L) │ │ └─────────────── hour (0 - 23) │ └──────────────────── minute (0 - 59) └───────────────────────── second (0 - 59, optional) ``` ### 字段取值范围 - 秒(Second):取值范围是0 - 59,可选字段。 - 分(Minute):取值范围是0 - 59。 - 时(Hour):取值范围是0 - 23。 - 日(Day of Month):取值范围是1 - 31,可用特殊字符如`L`。 - 月(Month):取值范围是1 - 12。 - 周(Day of Week):取值范围是0 - 7(0和7都表示周日),也可用`1L - 7L` 。 ### 使用方法 在不同的编程语言和系统中,使用Cron表达式的方式有所不同,但一般步骤如下: 1. **选择合适的库**:例如在JavaScript中可以使用`cron-validator`验证Cron表达式和`cron-parser`解析Cron表达式[^1]。 2. **编写Cron表达式**:根据任务的执行时间需求,编写符合语法规则的Cron表达式。 3. **集成到代码中**:将编写好的Cron表达式集成到相应的定时任务调度代码中。 ### 示例 #### 标准风格 ```python # 每隔 6 天凌晨 5:00 执行 cron_expression_standard = "0 5 */6 * *" ``` #### Quartz风格 ```python # 每隔 6 天凌晨 5:00:00 执行 cron_expression_quartz = "0 0 5 */6 * *" ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值