Noticias Weblogs Foros Wiki Código

RecorteX

317 usuarios y 202 recortes de código
Usuario

Contraseña
Crear cuenta
asp csharp css fechas fichero Flash html imagenes java javascript linux mysql oracle php ruby sql SQLServer vbnet xhtml xml
Top Usuarios
albin (29)
josuebasurto (28)
fjmp76 (27)
juanjo (25)
pedrocaro (9)
AndiXTRM (7)
Joserra (7)
miiglesi (6)
aplyca (5)
moisesmarquez (5)
Top Etiquetas
php (38)
html (23)
javascript (20)
vbnet (20)
java (19)
sql (15)
mysql (13)
csharp (12)
xml (10)
css (8)
imagenes (7)
Flash (7)
xhtml (6)
asp (6)
linux (6)
fechas (6)
SQLServer (5)
oracle (5)
fichero (4)
ruby (4)

Ejecutar un proceso cada cierto tiempo en un contenedor de servlets (tomcat)

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>
 
Comentario de omm1979:
este codigo funciona como hilo daemon o de background o solo muere cuando muere el servlet?
Comentario de juanjo:
Funciona como hilo en background. Se inicia cuando se inicia la aplicación web (cuando se inicia el tomcat).

Un saludo.
Comentario de omm1979:
se me ocurre otra cosa juanjo, tengo que hacer el mismo servlet pero que cada vez que le de un click a un boton de un formulario se programe o se ejecute la tarea a realizar, esto es un get o un post para ejecutar un exe, o x programa fuera del contenedor. otra pregunta es como puedo parar este servlet que acabo de empezar?, o si necesito reconfiguralo?, agradeceria mucho si pudieras darme alguna idea gracias, saludos.
Comentario de omm1979:

a lo que me refiero es que si se puede ejecutar cuando quiera darle click a un boton con get o post en la aplicacion dentro de tomcat, y que pueda parar la ejecucion o reprogramar reloj y la programada de ejecucion, agradeceria mucho si pudieras darme una idea o que pudieras contestarme mis dudas, gracias tambien por el codigo que muestras, de todos modos voy a probar que hace, saludos.

Identifícate para dejar un comentario.
info@recortex.com - Proyecto: Juanjo Navarro, 2006 - Diseño: Albin