【问题标题】:asp.net cron job quartz.net bug, not firing alwaysasp.net cron 作业quartz.net 错误,并不总是触发
【发布时间】:2016-03-20 00:32:32
【问题描述】:

我有一份工作,每 30 分钟触发一次。当工作触发时,我已经设置了一个测试表并记录了信息。例如:

2015-12-13 19:30:00.043
2015-12-14 12:30:00.043
2015-12-14 13:00:00.043
2015-12-14 16:00:00.043

但正如您所见,它并非每 30 分钟触发一次。 19:30 然后 12:30.. 我注意到如果我打开管理工作室并检查此表,下一个工作将触发 100%。为什么会发生这种情况,它是quartz.net 错误吗? PS我正在使用asp.net mvc,这是代码:

  ITrigger trigger = TriggerBuilder.Create()
                   .WithDailyTimeIntervalSchedule
                     (s =>
                        s.WithIntervalInMinutes(30)
                        .OnEveryDay()
                       .StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(0, 0))
                     )
                   .Build();

               scheduler.ScheduleJob(job, trigger);

【问题讨论】:

    标签: c# asp.net asp.net-mvc cron quartz-scheduler


    【解决方案1】:

    需要将WithDailyTimeIntervalSchedule 更改为WithSimpleSchedule。警告:可能有更好的方法来处理startDate

    DateTime startDate = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, DateTime.Now.Hour, 0 ,0, DateTimeKind.Utc);
    
     ITrigger trigger = TriggerBuilder.Create()
    .StartAt(new DateTimeOffset(startDate, new TimeSpan(0)))
    .WithSimpleSchedule
    (s =>
        s.WithIntervalInMinutes(30)
        .RepeatForever()
    )                   
    .Build();
    

    测试:

    var times = TriggerUtils.ComputeFireTimes(trigger as IOperableTrigger, null, 10);
    
    foreach (var time in times)
        Console.WriteLine(time.UtcDateTime);
    
    Console.ReadKey();
    

    结果:

    14.12.2015 15:00:00
    14.12.2015 15:30:00
    14.12.2015 16:00:00
    14.12.2015 16:30:00
    14.12.2015 17:00:00
    14.12.2015 17:30:00
    14.12.2015 18:00:00
    14.12.2015 18:30:00
    14.12.2015 19:00:00
    14.12.2015 19:30:00
    

    【讨论】:

    • 让我们观察 3-4 天,看看会发生什么
    • 我想我不太明白评论,但如果你想观察4天你可以把10(即10个间隔30分钟)改为4 days * 24 h/day * 2 intevals/h,即说:192。结果如预期:192 个间隔在 4 天内间隔 30 分钟。
    • 我将使用 hangfire,quartz.net 无法正常工作
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-15
    相关资源
    最近更新 更多