Quartz.net StartNow() 被 DailyAtHourAndMinute() 忽略

Quartz.net StartNow() ignored with DailyAtHourAndMinute()

DailyAtHourAndMinute() 有效,但为什么 StartNow() 被忽略?

TriggerBuilder.Create().WithIdentity("engineTriggerII", engineGroup).StartNow().WithSchedule(CronScheduleBuilder.DailyAtHourAndMinute(0, 0)).Build();

版本 2.3.3.0

这是预期的行为。

您要让触发器每天午夜触发,所以它现在永远不会触发...除非您 运行在午夜触发它。

我想您必须创建 2 个触发器才能实现您想要的效果。

您可以使用以下代码检查触发器安排在 运行 的时间:

private static void GetNextXFireTimes(ITrigger trigger, int counts)
{
    var dt = trigger.GetNextFireTimeUtc();

    for (int i = 0; i < (counts-1); i++)
    {
        if (dt == null)
        {
            break;
        }

        Console.WriteLine(dt.Value.ToLocalTime());

        dt = trigger.GetFireTimeAfter(dt);
    }
}

您可以在安排工作后调用它:

Scheduler.ScheduleJob(job, trigger);
GetNextXFireTimes(trigger, 100);

你应该会看到类似这样的内容:

18/09/2015 00:00:00 +01:00
19/09/2015 00:00:00 +01:00
20/09/2015 00:00:00 +01:00
21/09/2015 00:00:00 +01:00
22/09/2015 00:00:00 +01:00
23/09/2015 00:00:00 +01:00
24/09/2015 00:00:00 +01:00
25/09/2015 00:00:00 +01:00
26/09/2015 00:00:00 +01:00
27/09/2015 00:00:00 +01:00
28/09/2015 00:00:00 +01:00
29/09/2015 00:00:00 +01:00
30/09/2015 00:00:00 +01:00
01/10/2015 00:00:00 +01:00