gpt4 book ai didi

mysql - ER_CON_COUNT_ERROR : Too many connections knex and bookshelf

转载 作者:太空宇宙 更新时间:2023-11-03 11:34:00 25 4
gpt4 key购买 nike

我有一个用 express、knex 和 bookshelf 构建的简单 rest api。

我正在使用 Jmeter 进行一些性能测试,我注意到如果我调用执行以下查询的 API 则没有问题:

public static async fetchById(id: number): Promise<DatasetStats> {
return DatasetStats.where<DatasetStats>({ id }).fetch();
}

DatasetStats 是一个书架模型

但是如果我将 Jmeter 设置为调用以下内容,我会收到一个错误:ER_CON_COUNT_ERROR:一分钟后连接过多:

import * as knex from 'knex';

@injectable()
export class MyRepo {
private knex: knex;

constructor() {this.knex = knex(DatabaseConfig); }

async fetchResourcesList(datasetName: string): Promise<any> {
return this.knex.distinct('resource').from(datasetName);
}
}

问题可能是我为每个请求创建了一个 knex 对象?

最佳答案

是的。如果为每个请求创建新的 knex 实例,则无法控制与 mysql 数据库的并发连接总数。此外,您将无法重新使用 knex 连接池中已经打开的连接,因此在每次查询时打开到数据库的新 TCP 连接效率非常低。此外,如果您在查询后不销毁 knex 实例,连接将保持打开状态,直到一些空闲超时 + 应用程序将泄漏内存。

关于mysql - ER_CON_COUNT_ERROR : Too many connections knex and bookshelf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47469070/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com