Commit 2777b54d by Billy Larru

[EDIT main, programarsalidastask, hilo principal iniciando a las 06:00]

parent 989dbc46
......@@ -24,7 +24,7 @@ public class Main {
setLogLevel(Level.INFO);//PRODUCCION
log.info("Inicializando programa [Salidas Automaticas]...");
Date horaInicio = Metodos.getHoraEjecucion("12:30");
Date horaInicio = Metodos.getHoraEjecucion("06:00");
int periodo = 86400000;//El codigo se ejecutará cada 24h, 86400000 representa 24h en milisegundos
TimerTask task = new ProgramarSalidasTask();
......
......@@ -5,6 +5,7 @@
*/
package salidasautomaticas.schedule;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.util.Date;
import java.util.Iterator;
......@@ -23,59 +24,61 @@ import salidasautomaticas.util.Metodos;
*/
public class ProgramarSalidasTask extends TimerTask {
private static final Logger log = LogManager.getLogger(ProgramarSalidasTask.class);
private static SalidasServices service = new SalidasServices();
private static final Logger log = LogManager.getLogger(ProgramarSalidasTask.class);
private static SalidasServices service = new SalidasServices();
@Override
public void run() {
@Override
public void run() {
try {
JSONArray listaHorarios = service.obtenerHorariosSalida();
try {
LocalDateTime hoy = LocalDateTime.now();
log.info("Obteniendo la lista de horarios [" + hoy.toString() + "]");
JSONArray listaHorarios = service.obtenerHorariosSalida();
Timer timer;
TimerTask task;
Timer timer;
TimerTask task;
log.info("horario leido= " + listaHorarios);
for (Iterator it = listaHorarios.iterator(); it.hasNext();) {
JSONObject obj = (JSONObject) it.next();
String horaSalida = obj.getString("salida");
log.info("horario leido= " + listaHorarios);
for (Iterator it = listaHorarios.iterator(); it.hasNext();) {
JSONObject obj = (JSONObject) it.next();
String horaSalida = obj.getString("salida");
log.trace("Leyendo hora de salida " + horaSalida);
if (validarProgramacionSalida(horaSalida)) {
log.info("Programando hora de salida " + horaSalida);
Date horaEjecucion = Metodos.getHoraEjecucion(horaSalida);
log.trace("Leyendo hora de salida " + horaSalida);
if (validarProgramacionSalida(horaSalida)) {
log.info("Programando hora de salida " + horaSalida);
Date horaEjecucion = Metodos.getHoraEjecucion(horaSalida);
timer = new Timer();
task = new ActualizarSalidaTask(timer, horaSalida);
timer.schedule(task, horaEjecucion);
timer = new Timer();
task = new ActualizarSalidaTask(timer, horaSalida);
timer.schedule(task, horaEjecucion);
log.trace("Timer " + timer);
} else {
log.trace("Ya pasó la hora " +horaSalida);
}
}
log.trace("Timer " + timer);
} else {
log.warn("No se programa la hora de salida " + horaSalida + ", porque ya ha pasado la hora");
}
}
} catch (Exception ex) {
log.error("error", ex);
}
} catch (Exception ex) {
log.error("error", ex);
}
}
}
private boolean validarProgramacionSalida(String horaSalida) {
boolean valido = false;
String[] splitHora = horaSalida.split(":");
int min = Integer.parseInt(splitHora[1]);
int hora = Integer.parseInt(splitHora[0]);
int cantMinutos = hora * 60 + min;
private boolean validarProgramacionSalida(String horaSalida) {
boolean valido = false;
String[] splitHora = horaSalida.split(":");
int min = Integer.parseInt(splitHora[1]);
int hora = Integer.parseInt(splitHora[0]);
int cantMinutos = hora * 60 + min;
LocalTime timeSystem = LocalTime.now();
LocalTime timeSystem = LocalTime.now();
int cantMinutosSistema = timeSystem.getHour() * 60 + timeSystem.getMinute();
int cantMinutosSistema = timeSystem.getHour() * 60 + timeSystem.getMinute();
if (cantMinutos > cantMinutosSistema) {
valido = true;
}
if (cantMinutos > cantMinutosSistema) {
valido = true;
}
return valido;
}
return valido;
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment