Cron 表达式每 45 分钟执行一次,而不是每小时的第 45 分钟

Cron expression to execute every 45 minutes and not 45th minute of the hour

我正在尝试生成一个每 45 分钟执行一次的 cron 表达式。

我创建了以下表达式。 0 0/45 * 1/1 * ? *

但是这个表达式每 45 分钟触发一次。 例如:10:45、11:00、11:45、12:00 等

但是我们可以生成一个触发的表达式吗,例如, 10:45,11:30,12:15 等

你不能直接这样做。

0,45 */3 * * * ? *
30 1,4,7,10,13,16,19,22 * * * ? *
15 2,5,8,11,14,17,20,23 * * * ? *

Cron 表达式不支持每 45 分钟一次。您可以使用 Trigger:

Trigger trigger = TriggerBuilder
                .newTrigger()
                .startAt(startTime)
                .withSchedule(
                        CalendarIntervalScheduleBuilder
                                .calendarIntervalSchedule()
                                .withIntervalInMinutes(45)
                                .withMisfireHandlingInstructionDoNothing())
                .build();