@instun/pool
is an asynchronous pool module designed for use with Fibjs, Node.js, browser, and React Native. It allows you to manage a pool of resources efficiently, ensuring that your application can handle multiple tasks concurrently without overwhelming the system.
To install the package, use npm:
fibjs --install @instun/pool
Here is a basic example of how to use the pool module:
var db = require("db");
var Pool = require("@instun/pool");
var p = Pool(async () => {
return await db.promises.open("sqlite::memory:");
}, 10, 1 * 1000);
async function main() {
var res = await p(async (conn) => {
console.log("Connected");
await conn.execute("CREATE TABLE test (id INTEGER PRIMARY KEY, name TEXT)");
await conn.execute("INSERT INTO test (name) VALUES ('Hello')");
return await conn.execute("SELECT * FROM test");
});
console.log(res);
}
main();
create
: A function that creates a new resource.size
: The maximum number of resources in the pool.timeout
: The time in milliseconds before a resource is considered idle and removed from the pool.
Clears idle resources from the pool.
This project is licensed under the MIT License. See the LICENSE file for details.
Contributions are welcome! Please open an issue or submit a pull request on GitHub.
This project is maintained by Instun.