La finalidad de este post es ayudar al programador a realizar una tarea programada en Java, he utilizado el famoso comando ping para analizar el tiempo de retardo que devuelve un determinado host.
Mediante los parámetros de fecha y hora, que son los necesarios para ejecutar la tarea programada, se pretende realizar el ping en este tiempo.
¿Como vamos a realizar la tarea programada en Java?
- Utilizamos la clase Timer, creamos la instancia de esta clase para utilizar el método schedule.
- Utilizamos la clase Calendar, obtenemos su instancia para luego setear los parámetros (mes, dia, hh:mm:ss) que se obtienen a través de la interfaz de usuario.
Como nuestro ejemplo debe capturar los datos de mes, día, hora, minuto y segundos, los mismos que permitirán crear nuestra tarea programada. El código utilizado se muestra a continuación:
Clase Reminder
public Reminder(String ip, int intento, int mes, int dia, int hora, int min, int seg) {
dir_ip= ip;
num_intento= intento;
Calendar calendar = Calendar.getInstance();//Creamos una instancia
//Seteamos la fecha y hora
calendar.set(calendar.MONTH,mes);
calendar.set(calendar.DAY_OF_MONTH,dia);
calendar.set(Calendar.HOUR_OF_DAY, hora);
calendar.set(Calendar.MINUTE, min);
calendar.set(Calendar.SECOND, seg);
Date time = calendar.getTime();//Retorna un objeto Date, es una valor en milisegundos que se obtiene a partir de calendar.
timer = new Timer();//Crea un Nuevo Timer para utilizar la tarea programada
timer.schedule(new RemindTask(), time);//Se especifica la tarea programada para se ejecutada en el tiempo especificado.
}
La clase RemindTask extiende de TimerTask, la cual permite realizar la tarea especificada dentro del metodo run en un tiempo determinado.
Veamos el código:
class RemindTask extends TimerTask {
public void run() {
System.out.format("La tarea programada empieza..");
MyDBConnection.ingresoPing(dir_ip,num_intento);//llamo a mi metodo que permite registrar y ejecutar el ping.
timer.cancel(); //Termina la hora de tarea.
}
}
Este es el código que utilizo para realizar la tarea programada del ping en java.
Comentarios y sugerencias: eutitiaj@yahoo.com; elclon3000@hotmail.com
Att. Ismael Utitiaj
Programador Java.