素晴らしいコミュニティモジュール

fibjs の汎用リソース プーリング

ビルドステータス

インストール

1
npm install fib-pool [--save]

テスト

1
npm run ci

プールの作成

簡単な例。

1 2 3 4 5 6
var db = require("db"); var Pool = require("fib-pool"); var p = Pool(() => { return db.open("sqlite:test.db"); });

maxsize と timeout を指定します。

1 2 3 4 5 6
var db = require("db"); var Pool = require("fib-pool"); var p = Pool(() => { return db.open("sqlite:test.db"); }, 10, 30 * 1000);

カスタム破棄関数を指定します。

1 2 3 4 5 6 7 8 9 10 11 12 13
var db = require("db"); var Pool = require("fib-pool"); var p = Pool({ create: () => { return db.open("sqlite:test.db"); }, destroy: (o) => { o.close() }, timeout: 30 * 1000, retry: 3 });

プールの利用

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
var db = require("db"); var Pool = require("fib-pool"); var p = Pool({ create: () => { return db.open("sqlite:test.db"); }, destroy: (o) => { o.close() }, timeout: 30 * 1000, retry: 3 }); var res = p((conn) => { conn.execute("select * from test"); });

名前付きプールの使用

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
var db = require("db"); var Pool = require("fib-pool"); var p = Pool({ create: (name) => { return db.open("sqlite:" + name + ".db"); }, destroy: (o) => { o.close() }, timeout: 30 * 1000 }); var res = p("test", (conn) => { conn.execute("select * from test"); });

プールをクリアする

簡単な例。

1 2 3 4 5 6 7 8
var db = require("db"); var Pool = require("fib-pool"); var p = Pool(() => { return db.open("sqlite:test.db"); }); p.clear();