我正在尝试在 Quartz.Net 中建立一个重复的每日计划,但有一些问题:
首先,我制定了一个每日计划,在 12:45 重复使用 Quartz.Net 代码,如下所示:
var trigger = TriggerBuilder.Create()
.WithDailyTimeIntervalSchedule(s =>
s.OnEveryDay().StartingDailyAt(new TimeOfDay(13, 00)))
.Build();
var times = TriggerUtils.ComputeFireTimes(trigger as IOperableTrigger, null, 10);
foreach (var time in times) Console.WriteLine(time);
这是在新西兰 DST 执行的(所以 UTC+13:00)
我得到的输出很奇怪:
5/10/2012 1:00:00 p.m. +13:00
5/10/2012 12:01:00 a.m. +00:00
5/10/2012 12:02:00 a.m. +00:00
5/10/2012 12:03:00 a.m. +00:00
5/10/2012 12:04:00 a.m. +00:00
5/10/2012 12:05:00 a.m. +00:00
5/10/2012 12:06:00 a.m. +00:00
5/10/2012 12:07:00 a.m. +00:00
5/10/2012 12:08:00 a.m. +00:00
5/10/2012 12:09:00 a.m. +00:00
第一个日期/时间使用本地时区显示,然后其余的使用 UTC 显示,并且每个时间值增加 1 分钟,并且日期永远不会改变。
我觉得我可能在每日时间间隔时间表中遗漏了一些基本的东西,但我只是不知道它是什么?
编辑
作为执行此操作的更新,我现在切换到使用基于 CRON 表达式的触发器:
TriggerBuilder.Create()
.WithCronSchedule(string.Format("0 {0} {1} ? * *", 0, 13))
.Build();
它给了我预期的结果:
5/10/2012 12:00:00 a.m. +00:00
6/10/2012 12:00:00 a.m. +00:00
7/10/2012 12:00:00 a.m. +00:00
8/10/2012 12:00:00 a.m. +00:00
9/10/2012 12:00:00 a.m. +00:00
10/10/2012 12:00:00 a.m. +00:00
11/10/2012 12:00:00 a.m. +00:00
12/10/2012 12:00:00 a.m. +00:00
13/10/2012 12:00:00 a.m. +00:00
14/10/2012 12:00:00 a.m. +00:00
但我仍然想知道为什么 DailyTimeIntervale 时间表不起作用......