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

Guardar Threads en el contexto

Estas en el tema de Guardar Threads en el contexto en el foro de Java en Foros del Web. Hola, en mi aplicacion web realizo una serie de descargas asíncronas utilizando threads y necesito monitorizarlas idependientemene de que cierre la aplicacion y la vuelva ...
  #1 (permalink)  
Antiguo 20/12/2006, 09:56
 
Fecha de Ingreso: diciembre-2006
Mensajes: 12
Antigüedad: 17 años, 4 meses
Puntos: 0
Guardar Threads en el contexto

Hola,
en mi aplicacion web realizo una serie de descargas asíncronas utilizando threads y necesito monitorizarlas idependientemene de que cierre la aplicacion y la vuelva a abrir.
Para ello he guardado dichos threads en el objeto contexto que siempre está disponible a no ser que se reinicie el tomcat
¿Veis algun incoveniente a esto? ¿Me recomendais un modo mejor para hacerlo?
Gracias
F
  #2 (permalink)  
Antiguo 20/12/2006, 12:50
 
Fecha de Ingreso: diciembre-2006
Mensajes: 25
Antigüedad: 17 años, 4 meses
Puntos: 0
Re: Guardar Threads en el contexto

Wop!


bueno... inconveniente, como mínimo, que seran accesibles a todos los usuarios. Yo como mucho lo guardaría en session ;)
  #3 (permalink)  
Antiguo 20/12/2006, 14:00
 
Fecha de Ingreso: diciembre-2006
Mensajes: 12
Antigüedad: 17 años, 4 meses
Puntos: 0
Re: Guardar Threads en el contexto

En ese sentido no habría problemas pq todos los usuarios tendran los mismos privilegios.
Si los guardo en session, cuando cierro el navegador y lo vuelvo a abrir los perderia con lo cual no me sirve

El thread se encarga de descargar de una base de datos publica documentos y necesito saber en todo momento cuantos se han descargado. ¿Se os ocurre alguna otra forma de hacerlo sin guardar el thread en el contexto?

Gracias!
  #4 (permalink)  
Antiguo 29/12/2006, 09:37
 
Fecha de Ingreso: diciembre-2006
Mensajes: 25
Antigüedad: 17 años, 4 meses
Puntos: 0
Re: Guardar Threads en el contexto

Wop!

Una manera de hacerlo es con un singleton de una clase que te gestione los threads, ¿qué te parece?
  #5 (permalink)  
Antiguo 29/12/2006, 14:12
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Re: Guardar Threads en el contexto

Yo apostaria mejor por guardar un objeto que gestione los Threads y se encargue de crearlos, pararlos etc en el contexto, como dices. El problema del singleton es que dependes que solo haya una instancia de esa clase en la JVM, y como las aplicaciones web andan con classloaders para arriba y abajo... cualquiera te lo asegura.

Eso si, asegurate de que cierras adecuadamente los Threads si la aplicacion (el contexto) se reinicia, ya que si no dejaras al Tomcat colgado.
  #6 (permalink)  
Antiguo 29/12/2006, 17:12
 
Fecha de Ingreso: diciembre-2006
Mensajes: 25
Antigüedad: 17 años, 4 meses
Puntos: 0
Re: Guardar Threads en el contexto

Pues yo sigo pensando que es mejor el singleton... :), es más elegante y el hecho de asegurarte que solo tengas una instancia del objeto que gestiona los threads es una ventaja no un inconvniente... ¿quien más va a intentar instanciar esa clase? y es más, aun y así... cual seria el problema?

Aunque reconozco que es principalmente cuestion de gustos... con el singleton ganas que el sistema es independiente de si la aplicación es o no web ;)
  #7 (permalink)  
Antiguo 30/12/2006, 10:22
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Re: Guardar Threads en el contexto

Si si, es cuestión de gustos. Lo de que sea más elegante... bueno, es una opinión, a mi los Singleton no me lo parecen así que...

Y lo de que te aseguras que sólo tienes una instancia... reitero que en un entorno multi-classloader como es un contenedor web, eso no es cierto ya que podrías tener una instancia por cada vez que la clase este cargada por cada classloader (al reiniciar el contexto habitalmente se "tira" un classloader y se crea otro, aparte de que cada aplicacion web tiene su propio classloader).

De igual forma, si metes esa clase en el classloader principal, para asegurar que no haya duplicados, entonces tu singleton es accesible por cualquier clase dentro de esa JVM, incluyendo otras aplicaciones web que puedan existir sobre las que puede que no tengas ningun control (como en un entorno de hosting compartido)...

Eso si, es independiente de si es web o no, aunque con los riesgos antes mencionados a veces no compensa. Depende de lo que estes haciendo puede ser mejor una u otra cosa.
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 02:46.