Her sabah 08:00, UTC zamanlarında bir iş yapmaya çalışıyorum. Sorun, tetikleyicilerin söylediklerime saygı duymamaları. aşağıdaki gibiQuartz.net UTC zaman dilimi hakkında günlük zaman çizelgesi oluşturma
Benim kodudur:
ITrigger trigger = TriggerBuilder.Create()
.WithDailyTimeIntervalSchedule(
s => s.WithIntervalInHours(24)
.OnEveryDay()
.StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(8,0)))
.Build();
var times = TriggerUtils.ComputeFireTimes(trigger as IOperableTrigger, null, 10);
foreach (var time in times)
Console.WriteLine(time.UtcDateTime);
çıktısı: 6 Mayıs'ta saat değişiklikleri
30/09/2013 10:00:00 PM
1/10/2013 10:00:00 PM
2/10/2013 10:00:00 PM
3/10/2013 10:00:00 PM
4/10/2013 10:00:00 PM
5/10/2013 10:00:00 PM
6/10/2013 9:00:00 PM
7/10/2013 9:00:00 PM
8/10/2013 9:00:00 PM
9/10/2013 9:00:00 PM
nedeni yaz saati burada bu hafta sonu başlıyor olmasıdır.
Bunu anlattığım gibi 8AM UTC saatinde tetiklemeye nasıl başlarım?
Düzenleme: Bu hatta Cron programına yapar, çılgın:
ITrigger trigger = TriggerBuilder.Create()
.WithCronSchedule("0 0 8 * * ?")
.Build();
var times = TriggerUtils.ComputeFireTimes(trigger as IOperableTrigger, null, 10);
foreach (var time in times)
Console.WriteLine(time.UtcDateTime);
Çıktı:
30/09/2013 10:00:00 PM
1/10/2013 10:00:00 PM
2/10/2013 10:00:00 PM
3/10/2013 10:00:00 PM
4/10/2013 10:00:00 PM
5/10/2013 9:00:00 PM
6/10/2013 9:00:00 PM
7/10/2013 9:00:00 PM
8/10/2013 9:00:00 PM
9/10/2013 9:00:00 PM
kullandığınız quartz.net hangi sürümünü: Sadece çalışmasını gerçekleştirebilir? Belki bu yazı sorununuzla ilgili? http://stackoverflow.com/questions/15661268/quartz-net-using-understanding-cron-based-trigger-and-time-zone-summertime-da –
Quartz.Net 2.2 for 4.0 (2.2.400.0) – PMac
Bu soru, tetikleme tarihleri oluşturmak için yerel saati kullanan GetFireTimeAfter() dosyasında bir hata oluştu. Gördüğüm davranış bu gibi görünüyor. Bu soru Quartz.Net 2.1'de bir düzeltmeden bahsediyor, ancak 2.2 çalıştırıyorum, bu yüzden bu hata üzerinde yeni bir değişiklik olabilir (ya da yanlış bir şey yapıyorum). – PMac