common-pool

Simple resource pool

About

Simple resource pool.

Installation

npm install common-pool

Example

var pool = require("common-pool");
var resourceCreate = function(callback) {
    someResource.create(function(errorresource) {
        callback(error, resource);
    });
};
 
var resourceDestroy = function(resource) {
    resource.destroy();
};
 
var maxPoolSize = 10;
var idleTimeout = 3600 * 1000;
var idleInterval = 30000; // Optional, 10000 by default 
 
var resources = pool(resourceCreate, resourceDestroy, maxPoolSize, idleTimeout, idleInterval);
 
resources.take(function(errorresource) {
    if (error) {
        // Oh no! 
        // Resource could not be created. 
    } else {
        // Start working with resource. 
        resource.doSomething(function(error) {
            if (error) {
                // Something wrong! 
                // This is bad resource. Removing it from pool. 
                resources.remove(resource);
            } else {
                // Action complete. 
                // Returning resource to pool. 
                resource.release(resource);
            }
        });
    }
});