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

Tareas periódicas

Estas en el tema de Tareas periódicas en el foro de Java en Foros del Web. Hola, Tengo una base de datos en MySQL y una página web en JSP. Me gustaría, que cada vez que expire la fecha de un ...
  #1 (permalink)  
Antiguo 30/09/2009, 07:15
 
Fecha de Ingreso: noviembre-2003
Mensajes: 21
Antigüedad: 20 años, 5 meses
Puntos: 0
Tareas periódicas

Hola,
Tengo una base de datos en MySQL y una página web en JSP. Me gustaría, que cada vez que expire la fecha de un registro (de una tabla con las columnas email y fecha) envíe un email a la dirección que corresponda.
Ejemplo:

Si hay un registro que tiene los valores "midireccion" y "30-09-2009", que cuando llegue el día 30 envíe un email a la dirección "midireccion".

Para el manejo de la base de datos sólo dispongo de PhpMyAdmin.

Muchas gracias,

Jon
  #2 (permalink)  
Antiguo 30/09/2009, 08:33
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: Tareas periódicas

1º Tienes que obtener con una consulta SQL desde el código de la aplicacion (para eso te valen los prepared statement) la fecha de cada registro.
2º En la jsp, o en una clase java que se utilice en la aplicacion, debes programar que cada dia compruebe las fechas y las compare con las obtenidas por la consulta SQL. Para eso puedes utilizar la clase Calendar (Concretamente gregorianCalendar) y modificar el formato de los datos obtenidos para obtener el formato adecuado para comparar. Para automatizar la tarea puedes crear un timer de 24 horas o q esté continuamente detectando la fecha con un formato determinado (darle precision de dias) y cuando cambie hacer la comprobacion.
3º Una vez tengas eso tendras q configurar el envio del correo con los datos necesarios (Investiga sobre javax.mail) y espero que dispongas de un host smtp para eviar el correo.

Espero que estas indicaciones te resulten de ayuda. Un saludo.
  #3 (permalink)  
Antiguo 30/09/2009, 10:15
 
Fecha de Ingreso: noviembre-2003
Mensajes: 21
Antigüedad: 20 años, 5 meses
Puntos: 0
Respuesta: Tareas periódicas

Gracias por la repuesta Fuzzylog,
Creo aver entendido todo, pero sigo teniendo una duda.

Por un lado, no tengo ningun problema para que una clase java obtenga la fecha de cada registro mediante un statement normal (¿es necesario que sea "prepared statement" y no "statement" a secas?) y tampoco para realizar el envío de emails (ya he utilizado más veces javax.mail).

Lo que si que no entiendo es dónde debe de ir ubicado el código de la clase Calendar y todo eso. Se supone que en una clase normal, pero entonces, no sé ejecutara siempre que un 'cliente' acceda a la web? Cómo lograr que solo se ejecute una vez (por ejemplo con el primer cliente del día)? Qué pasaría si no hay ninguna visita ese día y ni la JSP ni las clases se ejecutan?
Probablemente mi problema sea más conceptual que práctico.

Gracias por tu ayuda, espero una respuesta,

Jon
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 19:43.