service-pool

    2.2.0 • Public • Published

    service-pool

    A simple, lightweight, Resource Pool Manager for NodeJS

    Created by Agilit-e

    About

    Inspired by generic-pool, service-pool aims to provide a simple means of managing service connections of any kind via a pool resource and accessing these services using a unique identifier.

    Installation

    $ npm install service-pool [--save]

    Example

    The below example shows how to setup a Service Pool with maximum 2 connections to a local MongoDB environment. It's similar to generic-pool, but take note of the 'id' property as well as the ability to test the service connection.

    // Step 1: Include relevant modules along with 'service-pool'
    const mongoose = require('mongoose')
    const servicePool = require("service-pool");
    
    // Step 2: Create an instance of a Service Pool
    const config = { max: 2 }
    const pool = new servicePool(config)
    
    // Step 3: Setup a service entry (A local MongoDB in this case)
    const id = 'unique-id-value'
    
    const serviceEntry = {
      id,
      onAdd: mongoose.createConnection('mongodb://localhost/dbname'),
      onTest: function (service) {
        return service.readyState === 1
      },
      onDestroy: function (service) {
        return service.close()
      }
    }
    
    // Step 4: Add service entry to pool
    let service = pool.add(serviceEntry) // service[Promise] = the returned connection to MongoDb in this case
    
    // Step 5: Get a service entry by id
    let service = pool.get(id) // service[Object] - the returned connection to MongoDb in this case
    
    // Step 6: Test a service entry by id
    let serviceActive = pool.test(id) // serviceActive - A boolean value confirming if the service is active
    
    // Step 7: Destroy a service entry by id
    let isDestroyed = pool.destroy(id) // isDestroyed - A boolean value confirming if the service was removed. null is returned if there was a problem
    
    // Step 8: Reset service pool
    let isReset = pool.reset() // isReset - A boolean value confirming if the service pool was reset and cleared of service entries

    Run Tests

    $ npm install
    $ npm test
    

    License

    MIT License

    Copyright (c) 2019 Agilit-e

    Install

    npm i service-pool

    Homepage

    agilite.io

    DownloadsWeekly Downloads

    14

    Version

    2.2.0

    License

    MIT

    Unpacked Size

    10 kB

    Total Files

    7

    Last publish

    Collaborators

    • agilite