node-mssql如何处理连接池?
我正在使用node-mssql包在Node中创build一个API端点。
我想知道包是如何处理连接池的,因为在包网站上没有太多解释。
在我的configuration中,我有以下几点,让游泳池达到10。
var config = { server: '', user: '', password: '', database: '', pool: { max: 10, min: 0, idleTimeoutMillis: 30000 } }
我已经将这些行添加到每个请求,所以我可以看到节点控制台中发生了什么…
// 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
我期待所有这些请求的池大小增加。
池是根据负载自动configuration的,还是我误解了一些东西?
编辑:包是使用它的外观的单调乏味的驱动程序。
在GitHub的项目问题跟踪器中find答案: https : //github.com/patriksimek/node-mssql/issues/118#issuecomment-92522160
答案是…
Clarkey,IIRC的默认池大小是10,如果你的请求返回速度不够快,第一个连接将被重用…如果你使用类似围攻的东西,如果你真的想testing的东西。 此外,iirc的连接将保持打开状态,等待30或60秒后再循环。