Quartz.NET触发器GetFireTimeAfter在某些日期失败(返回参数之前的日期)?

时间:2019-03-21 02:03:53

标签: quartz.net quartz

当我使用Quartz.NET在新的触发器上调用GetFireTimeAfter()时,我得到的结果很奇怪。对于某些日期,返回的触发时间实际上在我传递给GetFireTimeAfter()的参数之前。有人知道为什么吗?

以下是重现该问题的单元测试:

[Test]
public void Explicit_QuartzGetNextTime_FrequencyPeriod_11Days()
{
    ITrigger trigger = TriggerBuilder.Create()
            .WithIdentity("Trigger")
            .StartAt(new DateTime(2020,1,1,6,0,0))
            .WithSimpleSchedule(x => x.WithInterval(TimeSpan.FromDays(11)).RepeatForever())
            .Build();

    var referenceDate = new DateTime(2020, 3, 29, 6, 1, 0);   //6:01 AM

    var nextFireTime = trigger.GetFireTimeAfter(referenceDate).Value.DateTime;  //ends up being 2020-03-29 at 6:00 AM

    Assert.That(nextFireTime >= referenceDate);  //fails
}

更新

如果我从4月1日开始,我可以将参考日期增加11天,并可以循环调用任意次数,而不会发生错误。因此看来03-29和03-18日期只是有问题的,不确定为什么。

0 个答案:

没有答案