Estoy tratando de construir un programa diario que se repite en Quartz.Net pero tener algunos problemas:Quartz.Net cómo crear un programa diario que no ganas 1 minuto por día
Para empezar, ya construir un diario horario, a las 12:45 repating Usando código Quartz.Net así:
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);
esto está siendo ejecutado en Nueva Zelanda, el horario de verano (por lo GMT + 13: 00)
Y la salida que se ve es bastante extraño:
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
La primera fecha/hora se visualiza usando la zona horaria local, luego el resto se visualiza con UTC, y cada valor de tiempo se incrementa en 1 minuto, y la fecha nunca cambia.
Siento que me podría estar perdiendo algo fundamental aquí con el horario de intervalo de tiempo diario, pero simplemente no sé lo que es?
Editar
Como una actualización para hacer esto, ahora han pasado a utilizar un disparador basado expresión CRON:
TriggerBuilder.Create()
.WithCronSchedule(string.Format("0 {0} {1} ? * *", 0, 13))
.Build();
y me dio los resultados que cabe esperar:
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
Pero me gustaría saber por qué el programa DailyTimeIntervale no funciona ...
TriggerUtils.ComputeFireTimes - increíble! –