private void timerEjecutaProcesos_Tick(object sender, EventArgs e) { string codigo = ""; int valorUnico = 0, tareaId = 0; DateTime feActual = DateTime.Now; try { if (chkAutoRefresh.Checked) { dtpFeDesde.Value = feActual.Date; dtpFeHasta.Value = feActual.Date; } //Agregamos la tareas a la cola de ejecusion addTareasACola(); //Buscamos las tareas pendientes db.LimpiarFiltros(); db.AddFiltroNoIgualA("Codigo", "PI"); db.AddFiltroIgualA("Estatus_Id", "0"); db.AddFiltroIsNull("Fecha_Completado"); db.AddFiltroIsNull("Fecha_Fin"); db.AddFiltroOrderBY("Unico"); DTTareasPendientes = db.GetAll("TSISTEMA_PROCESOS_LOG", -1, db.Filtros); stLabelFecha.Text = "FECHA: " + feActual.ToLongDateString().ToUpper() + " " + feActual.ToLongTimeString().ToUpper(); foreach (DataRow item in DTTareasPendientes.Rows) { valorUnico = db.GetAsInt("Unico", item); tareaId = db.GetAsInt("Tarea_Id", item); codigo = db.GetAsString("Codigo", item).ToUpper().Trim(); Proceso myProc = new Proceso(); myProc.fecha = db.GetAsDate("Fecha", item); myProc.identificadorId = db.GetAsInt("Identificador_Id", item); myProc.codigo = codigo; myProc.tareaId = tareaId; myProc.nombre = db.GetAsString("Descripcion", item).ToUpper().Trim(); myProc.nombreSP = db.GetAsString("NombreSP", item).Trim(); //Marcamos la tarea como en proceso myProc.setEstatus(1, valorUnico); //if (codigo == "COPER") myProc.esReinicioOnError = true; if (codigo == "BK") { myProc.t = new Thread(myProc.realizarBackup); } if (codigo == "COPER") { myProc.t = new Thread(myProc.realizarCierreOPE); } if (codigo == "DEMORA") { myProc.t = new Thread(myProc.generarDemora); } if (codigo == "CONTA") { myProc.t = new Thread(myProc.generarContabilidad); } if (codigo == "LIMPIAR_LOG_DB") { myProc.t = new Thread(myProc.limpiarLogDB); } if (codigo == "DFOLDER_BK") { myProc.t = new Thread(myProc.borrarFilesBK); } if (codigo == "CLS-TBL-TEMP") { myProc.t = new Thread(myProc.limpiarTablasTemporales); } if (codigo == "PGO-GTOS-FIJOS") { myProc.t = new Thread(myProc.GenerarPagoGastosFijos); } if (codigo == "AF-DEPRE") { myProc.t = new Thread(myProc.GenerarAFDepreciacion); } if (codigo == "RB-DB-INDICES") { myProc.t = new Thread(myProc.RebuildDBIndices); } if (codigo == "SP" && myProc.nombreSP != "") { myProc.t = new Thread(myProc.EjecutaSP); } if (myProc.t != null) { myProc.t.Start(); procesosList.Add(myProc); } } for (int i = 0; i < procesosList.Count; i++) { if (procesosList[i].estatusId != 0 && procesosList[i].estatusId != 1) { procesosList.Remove(procesosList[i]); } } lblCantidadActivos.Text = "CANTIDAD PROCESOS ACTIVOS: " + procesosList.Count.ToString("N0"); ptbProcess.Visible = procesosList.Count > 0; if (chkAutoRefresh.Checked) { showHistorial(); } } catch (Exception ex) { mensajeError = ex.Message; } }