コード例 #1
0
        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;
        }
コード例 #2
0
        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;
            }
        }
コード例 #3
0
        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();
        }
コード例 #4
0
        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;
            }
        }
コード例 #5
0
        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;
            }
        }