Tôi đang cố gắng xây dựng lịch biểu lặp lại hàng ngày trong Quartz.Net nhưng có một số vấn đề:Quartz.Net cách tạo lịch biểu hàng ngày không đạt được 1 phút mỗi ngày
Trước hết, tôi xây dựng hàng ngày tiến độ, repating lúc 12:45 Sử dụng mã Quartz.Net như thế này:
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);
này đã được thực hiện ở New Zealand, DST (vì vậy UTC + 13: 00)
Và kết quả tôi nhận được là khá lạ:
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
Ngày/giờ đầu tiên được hiển thị bằng múi giờ địa phương, phần còn lại được hiển thị bằng UTC và mỗi giá trị thời gian được tăng thêm 1 phút và ngày không bao giờ thay đổi.
Tôi cảm thấy mình có thể thiếu một số thứ cơ bản ở đây với lịch trình khoảng thời gian hàng ngày, nhưng tôi không biết nó là gì?
Sửa
Như một bản cập nhật để làm điều này, bây giờ tôi đã chuyển sang sử dụng một kích hoạt biểu CRON dựa trên:
TriggerBuilder.Create()
.WithCronSchedule(string.Format("0 {0} {1} ? * *", 0, 13))
.Build();
Và nó đã cho tôi kết quả tôi mong chờ:
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
Nhưng tôi vẫn muốn biết lý do lịch trình DailyTimeIntervale không hoạt động ...
TriggerUtils.ComputeFireTimes - tuyệt vời! –