Red de conocimiento informático - Conocimiento de la instalación - Después de reiniciar el servicio, la primera exportación de poi expira.

Después de reiniciar el servicio, la primera exportación de poi expira.

Antecedentes

Según los comentarios de los estudiantes que realizaron la operación, la exportación de Excel expirará recientemente. El juicio inicial es que los datos están creciendo demasiado rápido, el volumen de datos es demasiado grande y el tiempo de solicitud excede el tiempo de espera establecido.

Intentando

He considerado cambiar el tiempo de espera para esta solicitud directamente, pero esta no es una solución permanente.

Después de buscar en línea, encontré muchas personas hablando sobre el uso de subprocesos múltiples, pero aún no lo he probado, pero recientemente otro proyecto usó subprocesos múltiples y se produjo un desbordamiento de memoria. . . Ignóralo por el momento

Plan

Más tarde, consulté al inteligente tío De y encontré una solución, que es relativamente simple. La idea es que después de que el backend comienza a procesar la solicitud, mantiene el estado de la solicitud para marcar si el archivo se ha generado o no. Si el archivo se ha generado, cárguelo en la nube, regrese a la dirección de descarga y registre la dirección hasta que se devuelva la siguiente solicitud para que los estudiantes de front-end lo descarguen.

El proceso específico es el siguiente

El estudiante de front-end solicita por primera vez. Después de recibir la solicitud, el back-end comienza a generar el archivo y lo devuelve. -end está procesando. Utilice redis para registrar la solicitud y marcar el estado como documento.

Los estudiantes de front-end deben sondear la interfaz con regularidad para ver si se genera el enlace del archivo. Puede configurar el efecto de carga en la página (hasta que llegue a la URL de descarga del archivo).

Una vez generado el archivo, cambie el estado del registro de Redis a generado, registre la dirección URL y devuelva la URL en la siguiente solicitud de interfaz.