public TaskNet() { InitializeComponent(); db = new workflowServiceEntities(); eventLog1 = new System.Diagnostics.EventLog(); service_config sc = db.service_config.FirstOrDefault(); if (!System.Diagnostics.EventLog.SourceExists(sc.service_log)) { System.Diagnostics.EventLog.CreateEventSource(sc.nombre_source, sc.service_log); } eventLog1.Source = sc.nombre_source; eventLog1.Log = sc.service_log; eventId = 1; }
private void Tracking(string descripcion) { try { bool debugService = bool.Parse(System.Configuration.ConfigurationManager.AppSettings["debugService"].ToString()); if (debugService) { workflowServiceEntities dbe = new workflowServiceEntities(); track tr = dbe.tracks.Add(new track()); tr.descripcion = descripcion; tr.fecha = DateTime.Now; dbe.SaveChanges(); } } catch (Exception ex) { throw ex; } }
protected override void OnStart(string[] args) { workflowServiceEntities dbe = new workflowServiceEntities(); enEjecucion = false; service_config sc = dbe.service_config.FirstOrDefault(); mensajeIntervalo = sc.mensaje_intervalo; mensajeDetenido = sc.mensaje_detenido; mensajeInicio = sc.mensaje_inicio; Tracking(mensajeInicio); // configurado para dispararse cada intervalo_ms en milisegundos System.Timers.Timer timer = new System.Timers.Timer(); timer.Interval = sc.intervalo_ms; timer.Elapsed += new System.Timers.ElapsedEventHandler(this.OnTimer); eventLog1.WriteEntry(sc.mensaje_inicio); timer.Start(); }
private void TareasEjecutadas(int idTarea, string resp) { try { workflowServiceEntities dbe = new workflowServiceEntities(); tareas_ejecutadas nuevaEjecucion = dbe.tareas_ejecutadas.Add(new tareas_ejecutadas()); DateTime momento = DateTime.Now; nuevaEjecucion.momento_ejecucion = momento; nuevaEjecucion.id_tarea = idTarea; nuevaEjecucion.respuesta = resp; dbe.SaveChanges(); dbe = new workflowServiceEntities(); tarea updateTarea = dbe.tareas.Find(idTarea); updateTarea.ultima_ejecucion = momento; dbe.SaveChanges(); } catch (Exception ex) { throw ex; } }
public void OnTimer(object sender, System.Timers.ElapsedEventArgs args) { if (!enEjecucion) { enEjecucion = true; db = new workflowServiceEntities(); List <tarea> listaTareas = db.tareas.ToList(); foreach (var tarea in listaTareas) { TimeSpan tiempoEjecucion = tarea.tiempo_ejecucion; DateTime tiempoActual = DateTime.Now; DateTime ultimaEjecucion = tarea.ultima_ejecucion; DateTime proximaEjecucion = ultimaEjecucion + tiempoEjecucion; if (proximaEjecucion <= tiempoActual) { try { string resp = EjecutarServicio(tarea.url_servicio, tarea.metodo, tarea.parametros, tarea.nombre_contrato); this.TareasEjecutadas(tarea.id, resp); Tracking(mensajeIntervalo + eventId); eventLog1.WriteEntry(mensajeIntervalo + " Nro# " + eventId, EventLogEntryType.Information, eventId++); } catch (Exception e) { Tracking("OnTime Error: " + e.Message + " Nro# " + eventId); eventLog1.WriteEntry("OnTime Error: " + e.Message + " Nro# " + eventId, EventLogEntryType.Error, eventId++); } } } enEjecucion = false; } }