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

Enviar correo usando mysql

Estas en el tema de Enviar correo usando mysql en el foro de Java en Foros del Web. Buenas, Tengo un hosting vps que trabaja sobre linux. Por otra parte, tengo una base de datos que aloja direcciones a las que debo enviar ...
  #1 (permalink)  
Antiguo 13/08/2012, 07:07
 
Fecha de Ingreso: abril-2012
Ubicación: 41°37′00″N, 00°37′00″E
Mensajes: 462
Antigüedad: 12 años
Puntos: 33
Enviar correo usando mysql

Buenas,
Tengo un hosting vps que trabaja sobre linux.
Por otra parte, tengo una base de datos que aloja direcciones a las que debo enviar emails con bastante frecuencia, pero no periódicamente.

El motor de base de datos que uso es mysql.

Preguntando en la sección de mysql me han comentado que lo más factible sería crear una rutina externa que envíe los emails.

Sin embargo, tengo una duda:

La rutina he pensado hacerla en JAVA (ya que el driver de conexión es muy fácil de usar y tengo diversas clases que me manejan todo el tema de mysql), pero entonces me veo en la "obligación" de bien dejar el jar ejectuando siempre (con un while(true), por ejemplo) o bien hacer algún tipo de arreglo para que se ejecute cada X tiempo.

Haciendo algo así,
- Si lo hago de manera que se quede en un bucle infinito bajará mucho el rendimiento del entorno?

- Si baja mucho el rendimiento, ¿como podira hacer para que se ejecutase cada X tiempo? (el tema de administracion de linux lo llevo algo bajo, se que hay maneras de hacerlo, pero... )

gracias!
  #2 (permalink)  
Antiguo 13/08/2012, 14:46
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: Enviar correo usando mysql

Hola:

Si tienes un VPS sobre linux, lo más cómodo es hacer un script que consulte las direcciones de correo y envíe el correo con sendmail, por ejemplo. Luego simplemente pon un cron que haga ejecutarse esa tarea con la periodicidad que quieras.

También puedes hacer el programa en java, sin necesidad de bucle, que haga la consulta de direcciones una vez y envíe el correo una vez. Luego lanzas el programa con el cron periódicamente.

Finalmente, si quieres hacer el bucle, no consumirá muchos recursos siempre que la espera no sea "activa", en la espera tienes que "dormir" el proceso para que no consuma. Un thread.sleep() lo duerme, así que no habría problemas

Código java:
Ver original
  1. while (true) {
  2.    // envio de correos
  3.    Thread.sleep(tiempo);
  4. }

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 14/08/2012, 01:15
 
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: Enviar correo usando mysql

Oh, perfecto!

Al final tendré que hacer sí o sí un jar (ya que la tarea de consultar los mails no es simple, está basada en al menos cinco parámetros diferentes )

Se que con esta pregunta puedo parecer borrico, pero, suponiendo que el jar se llame "mailer" y quiera lanzarlo cada 5 min, el cron sería asi?

Código:
while(true){
   java -jar ruta/mailer.jar;
   Thread.sleep(30000);
}
Este código, lo pondría directamente en la consola, o lo lanzaría con perl desde la shell?

Gracias por la respuesta

Etiquetas: clase, correo, jar, mysql
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 16:19.