2024年3月24日发(作者:)

cron表达式写法和配置方法

cron表达式是一个字符串,用来定义执行任务的时间规则。它由6或7个空格

分隔的时间字段组成,每个时间字段又由数字或通配符组成。具体的语法规则如

下:

字段名 允许的值 允许的特殊字符

:-: :: ::

秒 0-59 , - * /

分 0-59 , - * /

小时 0-23 , - * /

日 1-31 , - * ? / L W C

月 1-12 或 JAN-DEC , - * /

周几 0-6 或 SUN-SAT , - * ? / L C #

其中,特殊字符的含义如下:

- `*`:匹配任意值

- `,`:枚举多个值,如`1,3,5`

- `-`:表示范围,如`5-10`

- `/`:表示递增间隔,如`*/10`

- `?`:仅用于日和周几字段,表示不指定值

- `L`:仅用于日和周几字段,表示最后一天或最后一个工作日

- `W`:仅用于日字段,表示最近的工作日

- `C`:仅用于日和周几字段,表示计划所在的最近一天

- `#`:仅用于周几字段,表示第几个周几,如`2#3`表示第3周的周二

例如,如下配置表示每天23点执行一次任务:

0 0 23 * * ?

配置方法则因不同的应用而异。以下是几种常见的应用中的配置方法:

- Linux系统中使用crontab。运行`crontab -e`打开一个文本编辑器,按照cron

表达式语法来编辑任务,保存并退出即可。

- Java应用中使用Quartz框架。使用`CronTrigger`类来创建任务触发器,并设

置cron表达式。

- Spring框架中使用`@Scheduled`注解。在需要执行定时任务的方法上加上该

注解,并设置cron表达式即可。

- Docker Swarm中使用`docker service create`命令。在命令中加入

`update-delay`和`update-parallelism`参数,分别设置任务间隔时间和任务并

行数,将时间间隔设置为cron表达式的周期即可。