Cron表达式每45分钟执行一次

Mor*_*ori 1 cron quartz.net

我想要一个每45分钟触发一次的cron表达式。

根据文档,我创建了此0 0/45 * * * ?表达式。

但是会以12:00、12:45、13:00、13:45、14:00这样的模式触发。

但是我期望和想要的是在12:00、12:45、13:30、14:15被解雇。

我想念什么?

Raf*_*ski 5

Cron并不是要解决此类问题。它定义了必须触发触发器的确切日期和时间,而不是间隔。改用简单的时间表:

TriggerBuilder.Create()
  .StartAt(startDate)
  .WithSimpleSchedule(
    simpleScheduleBuilder => simpleScheduleBuilder.WithIntervalInMinutes(45))
  .Build();
Run Code Online (Sandbox Code Playgroud)

编辑: 这是上面的简单计划,或者是多个cron触发器(Quartz作业可以具有多个触发器):

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, ...
Run Code Online (Sandbox Code Playgroud)