Buenas tardes gente ... tiempo sin pasearme por aca ... ... les comento mi nuevo dolor de cabeza ... Tengo un servicio windows que debe ejecutar una tarea a determinada hora del dia una vez al dia. La tarea es que debe actualizar n tablas de la BD oracle de mi aplicacion web.
del lado web ya implemente y probe los querys que deben llevar a cabo esta tarea y funcionan sin problema.
del lado del cliente tengo el servicio windows implementado que no estoy seguro de haber configurado bien pues nada sucede cuando lo instalo desde Visual Studio.
no se si se deba a un problema de configuracion del servicio o que necesito "algo adicional" para que se ejecute el metodo.
Me dijeron que usara Quartz y nada sucede.
estoy usando Visual Studio 2008, framework 3.5, Oracle 10g.
No puedo hacer que el servicio windows "dispare" el metodo que ejecuta la tarea en BD
aca la parte de la configuracion
public void Iniciar()
{
var hora = DateTime.Now.Hour;
var minuto = DateTime.Now.Minute ;
if (!EventLog.SourceExists("ActualizarEstatus"))
EventLog.CreateEventSource("ActualizarEstatus", "LogActualizarEstatus");
_eventLog.Source = "ActualizarEstatus";
_eventLog.Log = "LogActualizarEstatus";
_eventLog.WriteEntry("Se ha iniciado el servicio de Actualizacion de Estatus");
var planificador = new StdSchedulerFactory().GetScheduler();
var disparador = TriggerUtils.MakeDailyTrigger(hora, minuto);
disparador.Name = "ActualizarEstatus";
disparador.Group = "Procesamiento";
var job = new JobDetail("ActualizarEstatus", "Procesamiento", typeof(JobActualizarEstatus));
planificador.ScheduleJob(job, disparador);
planificador.Start();
}
aca la parte del servicio
protected override void OnStart(string[] args)
{
_timer = new Timer(1 * 60 * 1000);
_timer.Elapsed += (TimerElapsed);
//var servicio = new ServicioActualizarEstatus();
//servicio.Iniciar();
}
private void TimerElapsed(object sender, ElapsedEventArgs e)
{
if (_lastRun.Date.Minute < DateTime.Now.Minute)
{
// stop the timer while we are running the cleanup task
_timer.Stop();
//
var servicio = new ServicioActualizarEstatus();
servicio.Iniciar();
//
_lastRun = DateTime.Now;
_timer.Start();
}
}
la parte que aparece comentada en OnStart es como lo tenia antes y que aparece ahora en el evento
a cualquier guru del tema le agradezco toda su ayuda