cron每小时执行一次,Cron表达式每45分钟执行一次

I want a cron expression which fires every 45 minutes.

According to the documentation, I have created this 0 0/45 * * * ? expression.

But it is fired in a pattern like 12:00, 12:45, 13:00, 13:45, 14:00.

But what I expect and want is to be fired at 12:00, 12:45, 13:30, 14:15.

What am I missing?

解决方案

Cron is not meant to solve such problems. It defines the exact date and times, when a trigger must be fired, not intervals. Use a simple schedule instead:

TriggerBuilder.Create()

.StartAt(startDate)

.WithSimpleSchedule(

simpleScheduleBuilder => simpleScheduleBuilder.WithIntervalInMinutes(45))

.Build();

Edit:

It's either a simple schedule as above, or multiple cron triggers (Quartz jobs can have multiple triggers):

0 0/45 12/3 * * ? # 12:00, 12:45, 15:00, 15:45, ...

0 30 13/3 * * ? # 13:30, 16:30, ...

0 15 14/3 * * ? # 14:15, 17:15, ...