Zastanawiam się kiedy ustawić coś w tymO której godzinie mam do czynienia w Quartz.net?
Trigger trigger = TriggerUtils.MakeDailyTrigger("abc", 5, 00);
ja ustawienie go na 5:00. Czy jest to godzina 5:00 czasu serwera lub UTC?
Zastanawiam się kiedy ustawić coś w tymO której godzinie mam do czynienia w Quartz.net?
Trigger trigger = TriggerUtils.MakeDailyTrigger("abc", 5, 00);
ja ustawienie go na 5:00. Czy jest to godzina 5:00 czasu serwera lub UTC?
Używa czasu UTC, jednak nie jest to prawidłowe documented.
Edytuj: w rzeczywistości wygląda tak, jakby użył obu! Wersje wcześniejsze niż 0.9 wykorzystanego czasu lokalnego, te po użyciu UTC (source), więc powinno to być UTC, dopóki używana jest najnowsza wersja.
5:00 czasu UTC. Public Quartz.NET API zawsze expects razy w formacie UTC. Wystarczy FYI, MakeDailyTrigger
to tylko skrót do CronTrigger z następującym formacie:
string.Format("0 {0} {1} ? * *", minute, hour)
Śmieszne, nie wiedziałem o MakeDailyTrigger, więc skończyłem z kodem string.format dokładnie jak wyżej. Chciałbym, żeby Quartz miał lepszą dokumentację. – nocarrier
Wierzę, że po wprowadzeniu godziny na godzinę argument metody MakeDailyTrigger że Quartz.Net spodziewa czasu lokalnego ... wewnętrznie Quartz .net konwertuje ten czas na UTC, ale jeśli wprowadzisz 5 w argumencie godziny, wyzwalacz uruchomi się o 5:00 czasu lokalnego.
Spróbuj
Trigger trigger =
TriggerUtils.MakeDailyTrigger("trigger",5,0);
var ttimes = TriggerUtils.ComputeFireTimes(trigger, null, 1);
foreach (DateTime ttime in ttimes)
{
Console.WriteLine(ttime);
'ttime is in UTC - so for EST, ttime.Hour would be 10AM
'however ttime.ToLocalTime().Hour would be 5AM
}
Po prostu FYI, Quartz.net 2.0.1 nie obsługuje czasu UTC, ale zostało to naprawione w wersji 2.1.0. Nauczyłem się tego na własnej skórze. – nocarrier
nie może znaleźć żadnej wzmianki UTC lub czas lokalny w przewodniku migracji wspomniano wyżej ... może Quartz.Net przeniósł doc? – w4ik
@ w4ik Tak, wydaje się, że przenieśli swoje dokumenty, zobaczą, czy mogę znaleźć inną kopię. –