Se implementa como un Listener de aplicación:
import javax.servlet.ServletContextListener;
import javax.servlet.ServletContextEvent;
import java.util.TimerTask;
import java.util.Timer;
public class Tarea extends TimerTask implements ServletContextListener {
private Timer timer;
public void contextInitialized(ServletContextEvent evt) {
// Iniciamos el timer
timer = new Timer();
timer.schedule(this, 0, 10*60*1000); // Ejemplo: Cada 10 minutos
}
public void contextDestroyed(ServletContextEvent evt) {
timer.cancel();
}
public void run() {
// Aquí el código a ejecutar cada cierto tiempo
}
}
Finalmente hay que añadir el listener al fichero web.xml de la aplicación. Ejemplo:
<web-app>
<listener>
<listener-class>Tarea</listener-class>
</listener>
</web-app>