2016-06-14 4 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 */ 
}}); 

動作を変更するには、のようなものを試してみてください