每次应用程序重新加载时,它都会使用node-mysql2创建一个新的数据库连接池,以重用DB连接。但是,当应用程序重新加载应用程序时,将创建一个新池。随着时间的推移,这将使RDBMS达到其最大连接数(~300)。在hook放弃应用实例之前,我如何使用钩子或其他技术关闭连接池?
这是在API部分,因此前端上下文提供程序无法提供帮助。
event - build page: /api/order/listForUser
wait - compiling...
event - compiled successfully
Connection pool was falsey. Created a new connection pool.
Released connection.
Released connection.
event - build page: /order/[orderId]
wait - compiling...
event - compiled successfully
event - build page: /api/order/details
wait - compiling...
event - compiled successfully
Connection pool was falsey. Created a new connection pool.
Released connection.
Released connection.如您所见,每次构建API "Page“时,都会创建一个新的连接池。这是有意义的,因为代码是新的,但是在此事件发生之前,有什么方法可以清理我的连接池吗?
发布于 2021-04-10 04:24:17
这是一个已知的nextjs问题,只在开发中发生。您可以尝试创建一个全局变量来保存连接。(但是,即使您使用global.variable,这也不能100%起作用)。
示例psuedo代码。
let connection
module.exports = () => {
if (!connection) {
connection = mysqlconnection(connection string)
return connection
} else {
return connection
}
}https://stackoverflow.com/questions/67025983
复制相似问题