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スケジュールが機能しない理由を知りたいのですが...