node-mssql如何处理连接池?

时间:2015-04-13 11:45:02

标签: sql-server node.js node-mssql

我使用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驱动程序。

1 个答案:

答案 0 :(得分:3)

在GitHub上的问题跟踪器项目中找到答案:https://github.com/patriksimek/node-mssql/issues/118#issuecomment-92522160

答案是......

  

Clarkey,IIRC默认池大小为10,如果你的请求返回得足够快......第一个连接只会被重用...如果你真的想要测试,你可以使用像siege这样的东西。此外,iirc连接将在循环播放之前保持打开状态30或60秒。