Foros del Web » Programación para mayores de 30 ;) » Java »

metodo que se ejecute cada cierto tiempo

Estas en el tema de metodo que se ejecute cada cierto tiempo en el foro de Java en Foros del Web. Hola tengo una duda de como hacer algo y expongo aqui el problema: necesito cada hora consultar la base de datos y comprobar que ciertos ...
  #1 (permalink)  
Antiguo 12/01/2013, 18:20
 
Fecha de Ingreso: agosto-2011
Ubicación: d.f
Mensajes: 283
Antigüedad: 12 años, 7 meses
Puntos: 4
metodo que se ejecute cada cierto tiempo

Hola tengo una duda de como hacer algo y expongo aqui el problema:

necesito cada hora consultar la base de datos y comprobar que ciertos parametros esten en los limites indicados si no es asi que mande un correo.

mi duda es esa como hacerlo. implementar un metodo que haga los queries respectivos ok esa parte lo entiendo, lo que no entiendo es que se haga esto cada cierto tiempo.

Estara correcto que desde un jsp mediante un javascript mande a llamar al metodo cada hora eso seria la mejor practica??

Quedo al pendiente de sus comentarios que siempre me han ayudado.
  #2 (permalink)  
Antiguo 12/01/2013, 18:26
 
Fecha de Ingreso: octubre-2012
Ubicación: Bogotá
Mensajes: 40
Antigüedad: 11 años, 6 meses
Puntos: 2
Respuesta: metodo que se ejecute cada cierto tiempo

Librería Timer de java, esa es la solición, te permite ejecutar una clase o método o lo que sea, cada cierto tiempo (mintos segundos,horas,dias)
  #3 (permalink)  
Antiguo 13/01/2013, 03:49
 
Fecha de Ingreso: noviembre-2012
Mensajes: 10
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: metodo que se ejecute cada cierto tiempo

Usa la clase Timer de java.util (java.util.Timer)


Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR, 6);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.AM_PM, 0);
Date date = calendar.getTime();
long unaHoraEnMilisegundos = 1 * 1000 * 60 * 60;

Timer timer = new Timer();
timer.scheduleAtFixedRate(new TimerTaskEfectuarFichajes(), date, unaHoraEnMilisegundos);

Saludos.
  #4 (permalink)  
Antiguo 13/01/2013, 11:57
 
Fecha de Ingreso: noviembre-2010
Ubicación: Córdoba
Mensajes: 119
Antigüedad: 13 años, 4 meses
Puntos: 8
Respuesta: metodo que se ejecute cada cierto tiempo

O mas fácil Thread.sleep();
  #5 (permalink)  
Antiguo 13/01/2013, 14:05
 
Fecha de Ingreso: abril-2012
Ubicación: 41°37′00″N, 00°37′00″E
Mensajes: 462
Antigüedad: 12 años
Puntos: 33
Respuesta: metodo que se ejecute cada cierto tiempo

Otra alternativa que podrías hacer, si puedes y te parece bien, sería hacer lo siguiente:

- Haces un proyecto JAVA que haga la consulta y demás (solo una vez)
- Exportas el proyecto como un JAR
- Haces un cron que ejecute el JAR cada X tiempo

No se si se adaptará a tu caso, pero así desde JAVA te puedes "olvidar" del timing, y dejar que se encargue el S.O...

Saludos
  #6 (permalink)  
Antiguo 13/01/2013, 16:41
 
Fecha de Ingreso: agosto-2011
Ubicación: d.f
Mensajes: 283
Antigüedad: 12 años, 7 meses
Puntos: 4
Respuesta: metodo que se ejecute cada cierto tiempo

Agradezco sus respuestas, oye DoHITB el servidor tiene SO. Win 2003 en vez de cron que pudiera utilizar???
  #7 (permalink)  
Antiguo 14/01/2013, 00:25
 
Fecha de Ingreso: abril-2012
Ubicación: 41°37′00″N, 00°37′00″E
Mensajes: 462
Antigüedad: 12 años
Puntos: 33
Respuesta: metodo que se ejecute cada cierto tiempo

Quizás las tareas programadas de windows.... pero éstas no se si tienen opción de que se ejecuten cada X tiempo...

Saludos
  #8 (permalink)  
Antiguo 14/01/2013, 04:20
 
Fecha de Ingreso: febrero-2011
Mensajes: 672
Antigüedad: 13 años, 2 meses
Puntos: 78
Respuesta: metodo que se ejecute cada cierto tiempo

Yo haría un proyecto nuevo, lo exportas como .JAR y utilizando el Thread.sleep(); que comenta el compañero kraneok lo tienes de forma sencilla. El tiempo lo puedes dejar en un Properties para cambiarlo cuando quieras.

Saludos.

Etiquetas: cada, jsp, metodo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:54.