我正在使用带有本地安装 mysql-8.0.15-winx64 的 @mysql/xdevapi npm 包(版本 8.0.22)。
我已将池设置为启用并尝试从客户端检索会话。如果我在 mysql 准备好之前执行此操作,那么我会收到一个 ECONNREFUSED 异常,这是预期的,但连接似乎永远不会被释放。如果池大小为 1,则所有后续尝试 getSession
异常是从 getSession 方法中引发的,因此不会返回会话供我.end()
手动调用。
const mysqlx = require('@mysql/xdevapi');
const client = mysqlx.getClient(config, { pooling: { enabled: true, maxSize: 1, queueTimeout: 2000 } });
const session = await this.client.getSession(); // returns ECONNREFUSED exception
/*
wait for mysql to be ready and accepting connections
*/
const session = await this.client.getSession(); // returns connection pool queue timeout exception because the previous session hasn't been returned to the pool
如何确保中止的连接返回到池中?