Learn about our RFC process, Open RFC meetings & more.Join in the discussion! »

service-pool

1.1.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

DownloadsWeekly Downloads

36

Version

1.1.0

License

MIT

Unpacked Size

10.1 kB

Total Files

7

Homepage

agilite.io

Last publish

Collaborators

  • avatar