Pregunta

Tengo que generar algunos informes de los diversos tipo de archivo(excel, pdf, png), con base en los insumos de una aplicación web.La aplicación está escrita en PHP en un servidor web apache.

CAJERO automático, cuando el usuario visita la sección de informes, desencadenan el evento, el cual comprueba si existen presentado nuevos datos en la base de datos y con base en esa información, el nuevo informe de los archivos generados.Esto hace que el usuario debe esperar hasta que los archivos son generados (3-10 segundos), lo que no es un buen enfoque en todo lo que necesito algún consejo que me puedan dar.

¿Fue útil?

Solución

Por supuesto, que realmente depende de su aplicación y su sistema, pero normalmente lo que hago es que tengo una tarea en el cron que se ejecuta un script de PHP para generar informes de forma periódica.La salida puede ser guardado en el sistema de ficheros o en una base de datos.De esta manera mis informes sólo se generan una vez (en lugar de cada vez que un usuario intenta descargar de ellos), Y que sólo se generan cuando sea necesario (el script se podría comprobar si se necesita generar un informe basado en lo que el cambio de criterio que usted, o usted podría configurar para generar toda una nueva informes periódicamente).Para mantenerlo muy simple, simplemente llame a su página web actual con wget o curl, y crear una nueva página en su servidor web para la descarga de los informes guardados.

El único problema con este enfoque es que los usuarios podrían descargar "obsoletos" (informes de datos ha cambiado, pero los informes no se han actualizado).Si esto es realmente un problema de otro enfoque sería mantener un script PHP que se ejecuta en la comprobación de antecedentes para la modificación de datos y generación de informes según sea necesario.

Otro enfoque es que sólo podría continuar la generación de informes cuando los usuarios intentan descargar, pero la caché de los resultados.De nuevo, usando su propio específicos de la aplicación de los criterios que usted podría comprobar si el informe en caché es lo suficientemente bueno para su descarga inmediata, o generar un nuevo informe y la memoria caché.Incluso se puede combinar esto con el primer enfoque periódicamente la generación de nuevos informes, pero si un usuario intenta descargar un informe que está fuera de la fecha de generar de inmediato una nueva (que hacen que el usuario espere de 3 a 10 segundos).

En última instancia, depende de tu sistema y su aplicación.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top