连接池和每小时计费实例

时间:2016-06-14 02:57:07

标签: javascript connection-pooling bookshelf.js knex.js

我试图更好地了解连接池在knex中的工作原理。

将来,我希望将我的应用程序部署到一个带有每小时计费的MySQL数据存储区的PaaS。我担心的是,使用连接池(如knex所做的那样)将导致我保持对我不再需要的数据存储区的连接打开,从而导致我花费实例时间。

因此,我的问题是:knex在长时间不使用后会自动删除池中的连接吗?此外,如果没有缩小连接的情况,我该怎么做才能确保当池中的所有连接都处于非活动状态时,我没有为未使用的实例小时付费?< / p>

我想,如果没有自动缩小,我需要能够访问池中的活动连接,以确保我知道所有连接何时处于非活动状态,然后销毁池。不幸的是,我并不完全确定如何做到这一点(我无法在文档中找到它)。

1 个答案:

答案 0 :(得分:0)

Knex使用Pool2进行池化,默认值为2个最小连接打开(请参阅knex.js pooling)。因此,如果使用这些默认值,您的担忧是有效的。

要更改行为,请尝试以下操作:

var knex = require('knex')({ 
  client: '<your driver, mysql?>', 
  connection: { <your connection parameters> }, 
  pool: { 
    min: 0 /* no connections if idle */, 
    idleTimeout: 10*1000 /* 10 secs idle connections are closed */ 
}});
相关问题