En muchas aplicaciones Java, es muy frecuente que tengamos la necesidad de ejecutar tareas periódicamente, muchas pueden ser las razones que nos lleven a ello, llamar periódicamente a un script que actualice una BBDD, comprobar periódicamente ciertos datos de la BBDD y dependiendo de sus valores mostrar una alarma al usuario…
Si nos encontramos ante la necesidad de hacer un desarrollo de este tipo, tenemos múltiples opciones para afrontarlo, la solución ‘casera’ es que la propia API de Java nos proporciona utilidades para hacerlo, la otra solución es, como siempre, recurrir a librerías externas al API de Java, en este artículo vamos a utilizar la librería QUARTZ.
Veamos que nos ofrece la API de Java.
La API de Java nos ofrece las clases:
- java.util.Timer
- java.util.TimerTask
Clase Timer
La clase Timer nos permite ejecutar las tareas de una forma programada, cada Timer en realidad es un Thread de Java que ejecuta todas los TimerTask que tenga asignados secuencialmente.
Sus métodos más importantes son:
Cancel( ): Termina el Timer descartando todas las tareas planificadas.
Schedule( ): Planifica la tarea a ejecutar (Consultar API para ver todas las opciones posibles).
Clase TimerTask
La clase TimerTask representa la tarea que se debe ejecutar periódicamente.
Para utilizarla tenemos que construir una clase que extienda de la clase TimerTask y sobreescribir el método run(), dentro de este método irá le código que queremos que se ejecute cuando se lance la tarea.
Sus métodos más importantes son:
Run( ) : Este método es el que se sobreescribe para que la tarea ejecute nuestro código.
Cancel( ): Desplanifica esta tarea (no se vuelve a ejecutar) pero no para el Timer que la ejecuta.
Mostrar el código del ejemplo.
