entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

1voto

Eficiencia en las consultas

Tengo una aplicación que ofrece la visualización de una gran cantidad de datos. Las consultas comienzan a ser lentas cuando hay tantos datos. Para visualizarlos en la web no tengo problemas porque puedo paginar. Pero sí para descargarlo en un fichero excell. La descarga del fichero puede llevar casi un minuto, y me parece algo incómodo para el usuario.

¿Qué se les ocurre que podría hacer? ¿Quizás lanzarlo en segundo plano enviandolo por email?

1 Respuesta

2votos

carlossevi Puntos63580

Desde luego que hacer esperar 1 minuto al usuario mientras se genera su página (que en realidad genera y descarga un Excel) es un poco excesivo. Supongo que ya has optimizado al máximo la generación del informe así que este punto nos lo saltamos.

Además de la idea que tienes de hacer un proceso en segundo plano que envíe el informe por email que me parece muy válida, te voy a dar otra idea por si te gusta más: cola de generación y descarga de informes.

El usuario añadiría una "petición" de generación de informe Excel a la cola. En este punto podrías controlar el número máximo de informes en espera, que no se puedan solicitar informes duplicados o cualquier otra circunstancia que se te ocurra.

Un proceso en segundo plano en el servidor se encargaría de ir generando todos los informes solicitados por los diferentes usuarios y de actualizar el estado de las peticiones de la cola.

El usuario tendría una sección en la página para ver su cola de peticiones y el estado de las mismas (generándose, en espera, listo para descargar...). Este listado incluso te podrías plantear actualizarlo mediante JS para que la información fuese en "tiempo real".

Adicionalmente podrías ir vaciando la lista de tareas completadas antiguas y eliminando del servidor los ficheros antiguos que ya no sirvieran.

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta