我使用node-mssql包在Node中创建API端点。
我想知道包是如何处理连接池的,因为package website上没有对它进行过多解释。
我的配置中有以下内容,允许池最多10个。
var config = {
server: '',
user: '',
password: '',
database: '',
pool: {
max: 10,
min: 0,
idleTimeoutMillis: 30000
}
}
我已将这些行添加到每个请求中,因此我可以看到Node控制台中发生了什么......
// Dump info about connection pool
console.log('SQL Pool - waitingClientsCount: ' + connection.pool.waitingClientsCount())
console.log('SQL Pool - getPoolSize: ' + connection.pool.getPoolSize())
console.log('SQL Pool - availableObjectsCount: ' + connection.pool.availableObjectsCount())
我已经在我的浏览器中导航到端点并且刷新了好几分钟。在Node控制台中,上面的每个输出都是这样的......
SQL Pool - waitingClientsCount: 0
SQL Pool - getPoolSize: 1
SQL Pool - availableObjectsCount: 0
我希望随着所有这些请求,池大小会增加。
池是根据负载自动配置自己,还是我误解了什么?
编辑:该软件包正在使用Tedious驱动程序。
答案 0 :(得分:3)
在GitHub上的问题跟踪器项目中找到答案:https://github.com/patriksimek/node-mssql/issues/118#issuecomment-92522160
答案是......
Clarkey,IIRC默认池大小为10,如果你的请求返回得足够快......第一个连接只会被重用...如果你真的想要测试,你可以使用像siege这样的东西。此外,iirc连接将在循环播放之前保持打开状态30或60秒。