Ver Mensaje Individual
  #3 (permalink)  
Antiguo 06/06/2013, 03:12
Avatar de rgf1987
rgf1987
 
Fecha de Ingreso: diciembre-2012
Ubicación: Asturias
Mensajes: 269
Antigüedad: 11 años, 10 meses
Puntos: 22
Respuesta: Enviar emails desde java

Al darle a un botón "Guardar" almaceno datos en la base de datos y posteriormente si el guardado es correcto, envio un email al usuario.
Al darle a guardar, mientras envio el email la web se me bloquea y no puedo hacer nada más hasta que terminan de enviarse el email/s


Código Java:
Ver original
  1. @RequestMapping("confirmarArticulo")
  2.     public String confirmarArticulo(@RequestParam("idArticulo") int idArticulo, ModelMap modelo) throws DAOException {
  3.         long inicio = System.currentTimeMillis();      
  4.        
  5.         long guardarArticulo = System.currentTimeMillis();
  6.         ArticuloManager managerArticulo = ManagerFactory.getInstance().getArticuloManager();
  7.         EstadoManager managerEstado = ManagerFactory.getInstance().getEstadoManager();
  8.         ArticuloVO articulo =  managerArticulo.getArticulo(idArticulo);
  9.         if(articulo.getEstadoArticulo().getIdEstado()==Constantes.ARTICULO_NO_ENVIADO){
  10.             articulo.setEstadoArticulo(managerEstado.getEstado(Constantes.ARTICULO_PENDIENTE_REVISION));//PendienteRevision
  11.         }
  12.         else if(articulo.getEstadoArticulo().getIdEstado()==Constantes.ARTICULO_PENDIENTE_MODIFICACION){
  13.             articulo.setEstadoArticulo(managerEstado.getEstado(Constantes.ARTICULO_EN_REVISION));//PendienteENRevision
  14.         }
  15.        
  16.         managerArticulo.actualizarArticulo(articulo);
  17.         System.out.println ("Tarda " + (System.currentTimeMillis()-guardarArticulo) + " milisegundos en guardar articulo");
  18.         String datosAdicionales= "Titulo Articulo: "+articulo.getTituloArticulo();
  19.         long tcorreo = System.currentTimeMillis();
  20.         Correo correo = new Correo();
  21.         correo.enviarCorreo(
  22.                 articulo.getAutor().getEmailUsuario(),
  23.                 Constantes.TITULO_CORREO_ARTICULOENVIADO,
  24.                 Constantes.CUERPO_CORREO_ARTICULOENVIADO, datosAdicionales);
  25.         System.out.println ("Tarda " + (System.currentTimeMillis()-tcorreo) + " milisegundos en guardar correo");
  26.         System.out.println ("Tarda " + (System.currentTimeMillis()-inicio) + " milisegundos");
  27.         return "redirect:administracion.htm";
  28.     }

Esto me da los siguientes tiempos:
Tarda 82 milisegundos en guardar articulo
Tarda 2978 milisegundos en guardar correo
Tarda 3060 milisegundos

Última edición por rgf1987; 06/06/2013 a las 03:24