martes, agosto 26, 2008

Ping en Windows a través de una tarea programada en Java.

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.