2016-06-14 67 views
1

我試圖更好地瞭解連接池如何在knex中工作。連接池和計費小時實例

將來,我想用一個按小時收費的MySQL數據存儲將我的應用程序部署到PaaS。我擔心的是,使用連接池(如knex)會使我保持連接對我不再需要的數據存儲開放,從而耗費實例時間。

因此,我的問題是:knex在長時間未使用後會自動刪除池中的連接嗎?此外,如果沒有連接的縮減情況,我應該怎麼做才能確保在池中的所有連接都處於非活動狀態時,我不會因未使用的實例小時而收費?

我想,如果沒有自動縮小,我需要能夠訪問池中的活動連接,以確保知道所有連接都處於非活動狀態,然後銷燬池。不幸的是,我不完全確定如何做到這一點(我無法在文檔中找到它)。

回答

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 */ 
}});