2.4.0-rc-1 • Published 11 months ago

service-pool v2.4.0-rc-1

Weekly downloads
16
License
MIT
Repository
github
Last release
11 months ago

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

2.4.0-rc-1

11 months ago

2.3.0-rc-1

1 year ago

2.3.0-rc-3

1 year ago

2.3.0-rc-2

1 year ago

2.3.0-rc-5

1 year ago

2.3.0-rc-4

1 year ago

2.3.0-rc-7

1 year ago

2.3.0-rc-6

1 year ago

2.3.0

11 months ago

2.2.0

4 years ago

2.1.0

5 years ago

2.0.0

5 years ago

1.1.0

5 years ago

1.0.1

5 years ago

1.0.0

5 years ago

0.0.5

5 years ago

0.0.4

6 years ago

0.0.3

6 years ago

0.0.2

6 years ago

0.0.1

6 years ago