La conexión de la base de datos está llena Conexión no válida

Escenario del proyecto:

Dado que el número predeterminado de conexiones de base de datos en nuestro entorno de prueba es 200, y acabo de hacer un requisito de exportación, todo el proceso de exportación es: primero, obtener los datos de muchas tablas de datos y ensamblarlos en la memoria, y luego subirlos a Exportar el servidor y devolver al usuario un enlace de descarga.


Descripción del problema:

Dado que el servicio de exportación en sí abrió 10 corrutinas, al obtener datos de tres tablas y abrió corrutinas por separado, se abrieron alrededor de 10 corrutinas para cada tabla, y se abrió un total de 10X10X10 corrutinas en la base de datos. La tabla obtiene datos y luego puede haber muchas tareas de exportación en curso en el entorno de prueba al mismo tiempo. Por lo tanto, errores como conexión inválida o mala conexión aparecen con frecuencia.


Análisis de causa:

Debido a demasiadas corrutinas abiertas, al obtener datos de la base de datos, la cantidad de conexiones mysql que se han ocupado no se ha liberado, lo que hace que mysql falle cuando la conexión está ocupada, lo que genera un error.


solución:

Cambie el método de ocupar demasiados recursos de la conexión mysql al método de ocupar menos conexión mysql, y cargue el método original de obtener datos de una sola tabla abriendo una corrutina en la memoria en un momento a través de otras condiciones de filtro como almacén o país. Finalmente resuelto el problema.

Supongo que te gusta

Origin blog.csdn.net/m0_38101105/article/details/118607701
Recomendado
Clasificación