03/04/2011, 21:54
|
| | | Fecha de Ingreso: septiembre-2003 Ubicación: The Matrix
Mensajes: 341
Antigüedad: 21 años, 3 meses Puntos: 4 | |
Respuesta: Servlet de larga duración Hola:
Es una solución válida, aunque no se cual es el tipo de tarea, pero estoy viendo a simple vista un problema de concurrencia.
Yo pienso que la solución vendría luego hacer un buen analisis, ya que estamos hablando de una aplicación web la cual pudiera tener varios usuarios realizando la misma tarea concurrentemente.
El punto es:
- Que sucede si la persona que corrió la tarea se canso de esperar y otros usuario hacen la petición de la misma tarea mientra esta corriendo ?
Si la tarea es unica para todos los usuarios vas a tener problemas al usar el metodo antes mencionado ya que el HashMap moriria en lo que termine la tarea y adíos al token y si sumamos que la session termino antes que la tarea, sería mucho peor.
En este caso te aconsejaria usar un ThreadLocal + Metodos sincronizados y así poder monitorear la tarea. Lo más sano seria crear un log desde que comienza hasta que la tarea termine bien sea en base de datos ó como lo prefieras. El ThreadLocal te va ayudar porque pudieses asignar como variable del Thread la session del usuario y asi identificar la tarea.
De todas formas, si usas Tomcat, Dale una leida a ServletsListeners, que aunque no se cuales sean tus requerimientos esto te pudiece ayudar.
Saludos.
__________________ --
NOTA: Si haz conseguido la solución a tu problema, por favor edita el titulo del tema colocando el prefijo [SOLUCIONADO], para que otros usuarios puedan encontrar soluciones más rápido. |