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@RequestMapping("confirmarArticulo")
public String confirmarArticulo
(@RequestParam
("idArticulo") int idArticulo, ModelMap modelo
) throws DAOException
{ long inicio
= System.
currentTimeMillis();
long guardarArticulo
= System.
currentTimeMillis(); ArticuloManager managerArticulo = ManagerFactory.getInstance().getArticuloManager();
EstadoManager managerEstado = ManagerFactory.getInstance().getEstadoManager();
ArticuloVO articulo = managerArticulo.getArticulo(idArticulo);
if(articulo.getEstadoArticulo().getIdEstado()==Constantes.ARTICULO_NO_ENVIADO){
articulo.setEstadoArticulo(managerEstado.getEstado(Constantes.ARTICULO_PENDIENTE_REVISION));//PendienteRevision
}
else if(articulo.getEstadoArticulo().getIdEstado()==Constantes.ARTICULO_PENDIENTE_MODIFICACION){
articulo.setEstadoArticulo(managerEstado.getEstado(Constantes.ARTICULO_EN_REVISION));//PendienteENRevision
}
managerArticulo.actualizarArticulo(articulo);
System.
out.
println ("Tarda " + (System.
currentTimeMillis()-guardarArticulo
) + " milisegundos en guardar articulo"); String datosAdicionales
= "Titulo Articulo: "+articulo.
getTituloArticulo(); long tcorreo
= System.
currentTimeMillis(); Correo correo = new Correo();
correo.enviarCorreo(
articulo.getAutor().getEmailUsuario(),
Constantes.TITULO_CORREO_ARTICULOENVIADO,
Constantes.CUERPO_CORREO_ARTICULOENVIADO, datosAdicionales);
System.
out.
println ("Tarda " + (System.
currentTimeMillis()-tcorreo
) + " milisegundos en guardar correo"); System.
out.
println ("Tarda " + (System.
currentTimeMillis()-inicio
) + " milisegundos"); return "redirect:administracion.htm";
}
Esto me da los siguientes tiempos:
Tarda 82 milisegundos en guardar articulo Tarda 2978 milisegundos en guardar correo Tarda 3060 milisegundos