Quartz Cron 表达式

一、什么是 Quartz Cron 表达式

Quartz Cron 表达式是一种由 cron 表达式演变而来的一种用来表示定时任务执行周期的方式。它可以精确到秒级别的时间点,支持精确地控制定时任务的执行时间。

二、Quartz Cron 表达式的格式

Quartz Cron 表达式由六个字段组成,它们分别是:秒、分、小时、日、月、周。每个字段都有一些特定的值,用于表示任务执行的时间。

Quartz Cron 表达式的格式如下:

```

<秒> <分> <小时> <日> <月> <周>

```

其中:

- 秒:取值范围为 0~59。

- 分:取值范围为 0~59。

- 小时:取值范围为 0~23。

- 日:取值范围为 1~31。

- 月:取值范围为 1~12 或 JAN~DEC。

- 周:取值范围为 0~7 或 SUN~SAT。其中,0 和 7 都表示周日。

以上每个字段都可以使用以下方式来表示:

1. 具体的值

使用具体的数字或字符串来表示某个时间点。例如:

- 秒:2

- 分:30

- 小时:8

- 日:15

- 月:6

- 周:3

以上表示的含义分别为:2 秒、30 分、8 点、15 号、6 月、周三。

2. 区间

使用`-`来表示一个区间,例如:

- 日:10-20

表示从 10 号到 20 号(包括 10 和 20)。

3. 列表

使用`,`来表示一个列表,例如:

- 日:1,15

表示 1 号和 15 号。

4. 星号

使用 `*` 表示所有可能的值。例如:

- 分:*

表示每分钟都执行。

5. 斜杠

使用 `/` 表示增量,例如:

- 每隔 5 秒执行:`*/5 * * * * ?`

表示每隔 5 秒都要执行一次任务。

三、Quartz Cron 表达式的使用方法

1. 创建 CronTrigger 对象

首先,我们需要创建一个 CronTrigger 对象,来设置任务的执行时间。 创建 CronTrigger 对象的方法如下:

```java

CronTrigger trigger = TriggerBuilder.newTrigger()

.withIdentity("trigger1", "group1")

.withSchedule(CronScheduleBuilder.cronSchedule(cronExpression))

.build();

```

其中,`cronExpression` 就是我们要创建的 Cron 表达式。

2. 解析 Cron 表达式

在创建 CronTrigger 对象之前,我们需要先解析 Cron 表达式。Quartz 提供了 CronExpression 类来解析 Cron 表达式。解析 Cron 表达式的方法如下:

```java

CronExpression expression = new CronExpression(cronExpression);

```

如果 Cron 表达式格式不正确,解析器就会抛出 ParseException 异常。

3. 验证 Cron 表达式

在创建 CronTrigger 对象之前,建议先对 Cron 表达式进行验证,以确保 Cron 表达式能正确地表示任务的执行时间。验证 Cron 表达式的方法如下:

```java

CronExpression.validateExpression(cronExpression);

```

如果 Cron 表达式格式不正确,验证器就会抛出 CronException 异常。

四、Quartz Cron 表达式的案例

1. 每隔一分钟执行一次

Cron 表达式:`0 */1 * * * ?`

解析如下:

- 秒:0

- 分:每分钟的第 0 秒

- 小时:任意

- 日:任意

- 月:任意

- 周:任意

该Cron 表达式表示每隔一分钟执行一次。

2. 每天的 11 点 30 分执行

Cron 表达式:`0 30 11 * * ?`

解析如下:

- 秒:0

- 分:30

- 小时:11

- 日:任意

- 月:任意

- 周:任意

该 Cron 表达式表示每天的 11 点 30 分执行。

3. 每年的 3 月份的第一个星期五 13 点执行

Cron 表达式:`0 0 13 ? 3 FRI#1`

解析如下:

- 秒:0

- 分:0

- 小时:13

- 日:任意

- 月:3

- 周:第一个星期五

该 Cron 表达式表示每年的 3 月份的第一个星期五 13 点执行。

5. 每个月最后一天的 0 点执行

Cron 表达式:`0 0 0 L * ?`

解析如下:

- 秒:0

- 分:0

- 小时:0

- 日:每个月的最后一天

- 月:任意

- 周:任意

该 Cron 表达式表示每个月最后一天的 0 点执行。

以上是一些常见的 Cron 表达式案例,读者可以根据自己的业务需求,来灵活地制定任务的执行时间。 如果你喜欢我们三七知识分享网站的文章, 欢迎您分享或收藏知识分享网站文章 欢迎您到我们的网站逛逛喔!https://www.37seo.cn/

点赞(60) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿
发表
评论
返回
顶部