CRON表达式语法
Cron表达式通常由五个或六个被空格或tab分隔开的字段组成,例如* * * * *代表每分钟都执行指定的任务。对于cron表达式中各个字段的含义,可参考下表:
| 字段 | 说明 |
|---|---|
minute | 代表分钟,允许的值为0-59 |
hour | 代表小时,允许的值为0-23 |
day | 代表日期,允许的值为1-31 |
month | 代表月份,允许的值为1-12,或是使用英文缩写 |
dayOfWeek | 代表星期几,允许的值为0-7,其中0代表星期天,1-7代表星期一至星期天,或是使用英文缩写 |
year | 年份,非必须字段,不指定的情况下等同与使用* |
上面提到了month与dayOfWeek可以使用英文缩写表示,其表示方法为对应的英文单词的前三个字母,例如在月份部分使用JAN、FEB,或是在星期部分使用MON、TUE等。英文缩写表示的情况下大小写不敏感,例如JAN、jan、Jan都是有效的。
在cron表达式中,除了使用数字以外,还允许使用*``,``-等通配符,它们分别代表:
*: 代表任意值,例如0 * * * *将在每个小时的0分执行指定的任务;,: 通过,可以添加多个允许的值,例如5,30 * * * *将在每个小时的05、30分执行指定的任务;-: 表示范围值,例如0 2-5 * * *将在每天的2点到5点之间(包括2点与5点)每个小时的0分执行指定的任务;/: 表示从指定时间开始指定间隔的时间,例如*/10 * * * *表示每十分钟执行指定的任务;5/10 * * * *表示每个小时的05、15、25、35、45以及55分执行命令。
Cron表达式也允许多种通配符混合使用,例如5,30,40-45 * * * *表示每个小时的05、30分以及40到45分之间的每一分钟,都执行命令。
当日期与星期同时被设定时(非
*),则满足其中任意一个条件便执行命令。例如0 0 10 * 1表示在每个月10号或者每个星期一的0时0分都将执行命令。
在部分支持cron表达式的应用程序中,可能还支持秒级间隔,则该cron表达式第一个字段表示秒且表达式由六个或七个字段组成。
扩展写法
除了上面的cron表达式语法外,在某些实现上还允许一些特定的标志,但其不属于标准的写法,使用前需要判断是否支持:
| 标志 | 描述 |
|---|---|
@reboot | 重启后执行一次 |
@yearly | 每年执行一次,等同于0 0 1 1 * |
@annually | 每年执行一次,等同于0 0 1 1 *,与@yearly效果相同 |
@monthly | 每个月执行一次,等同于0 0 1 * * |
@weekly | 每周日执行一次,等同于0 0 * * 0 |
@daily | 每天执行一次,等同于0 0 * * * |
@hourly | 每小时执行一次,等同于0 * * * * |
@reboot | 启动时执行 |
CRON表达式是一种用于配置定时任务的语法,由五个或六个字段组成,如分钟、小时、日期、月份、星期和年份。字段可以使用数字、通配符(*)、逗号(,)、减号(-)和斜杠(/)来定义时间间隔。例如,`0010*1`表示每月10号或每周一的0时0分执行任务。此外,一些实现还支持扩展写法,如`@yearly`表示每年执行一次。在处理日期和星期时,如果两者都非*,则满足任一条件即执行。了解这些规则,能帮助你更精确地设置定时任务。
31万+

被折叠的 条评论
为什么被折叠?



