c# - asp.net cron job quartz.net 错误,不总是触发

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

我有一份工作,每 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.. 我注意到如果我打开 managament studio 并检查这张表,下一个工作将触发 100%。为什么会这样,是 quartz.net 错误吗? P.S 我正在使用 asp.net mvc,这是代码:

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

               scheduler.ScheduleJob(job, trigger);

最佳答案

需要将 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

关于c# - asp.net cron job quartz.net 错误,不总是触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34268538/

相关文章:

javascript - 如何使用 ASP.Net 中的 PageMethods 将多维数组从 Javascript 传递到服务器

c# - VS 2012 发布后,使用异步与 VS 2010 的正确方法?

c# - Int 和 Int 的 FirstOrDefault 行为?

c# - 获取一个asp :dropdownlist in code behind using C#的选中文本(不是选中值)

c# - asp 按钮里面的 Font Awesome

c# - ASP.Net MVC 在模型错误中定义 PageLink

asp.net-mvc - 自定义命令 Kendo UI MVC 5 - 错误服务器绑定(bind)

c# - 用空字符串替换json字符串中的双引号

c# - 使用 Microsoft.JScript 的 JavaScript 和 C# 插值

asp.net-mvc - ASP.NET Core Razor SDK 类库 - 不在区域目录内的区域 View