Hola a todos. Necesito que una función se ejecute una vez al día. Lo que hace
esta funcion es comprobar si hay trabajos que están por cumplir su fecha de
vencimiento, y en tal caso manda un mail al responsable comunicándoselo.
Para esto creo un timer en el evento Application_Start del Global.asax y le
puse el interval para que se ejecute cada 24 horas.
El problema que me surge es que no se ejecuta cada 24 horas, sino que se
ejecuta cuando alguien inicia una sesión en la aplicación, con lo que no
puedo depender de que un usuario use el sistema para que se llame a la
función. Alguien sabe qué puede estar funcionando mal?
Os paso el código por si es de ayuda:
public class Global : System.Web.HttpApplication {
protected void Application_Start(object sender, EventArgs e) {
Timer timer = new Timer();
timer.Elapsed += new ElapsedEventHandler(OnTimedEvent);
timer.Interval = 86400000;
timer.Enabled = true;
}
private static void OnTimedEvent(object source, ElapsedEventArgs e) {
Alarmas alarma = new Alarmas();
alarma.alarmaTrabajos();
}
}
Muchas gracias.
Leer las respuestas