Estoy intentando llamar a algo cada 3 meses (trimestralmente) en Quartz.NET (utilizando tanto la versión estable como la más reciente 2 que es beta con los mismos resultados).Quartz.Net - Cada 3 meses
Creo cron trigger con 0 30 8 3 */3 ? *
que se llamará cada 3 meses a las 8:30 a.m. del tercer mes del mes.
Por lo tanto, desde el 2 de septiembre de hoy espero que se active mañana. Sin embargo, el próximo tiempo de ejecución se muestra como el próximo mes. ¿Por qué es así?
Actualización: Según las respuestas que obtuve creé siguiente método - podría ser útil para alguien:
public static string CalculateMonthsWithInterval(int startMonth, int interval)
{
var months = new List<string>();
var monthNames = new [] {"JAN", "FEB", "MAR", "APR", "MAY", "JUN", "JUL", "AUG", "SEP", "OCT", "NOV", "DEC"};
var monthSelector = startMonth % interval;
for (var i = 0; i < 12; i++)
{
if (i % interval == monthSelector)
{
months.Add(monthNames[i]);
}
}
return string.Join(",", months.ToArray());
}
PD: Yo no utilizar índices durante meses porque por alguna razón que no funcionaba bien con mi Quartz (v2 BETA). También es más fácil de leer en el nivel de base de datos.
Ejemplo de llamada - Cada 3 meses sobre la base de startDate:
var cronMonths = CronUtils.CalculateMonthsWithInterval((startDate.Month - 1), 3);
¿Cómo le hacen desencadenan cada 3 meses, entonces? – Luke
Bueno, como dije en mi respuesta: 0 30 8 3 MAR, JUN, SEP, DEC? * –
Esto será cada 3 meses, a partir de 2011-09-03 08:30:00 –