This library provides a wrapper around the standard node
cluster
module. The library will automatically terminate and restart cluster workers based on time or connections. These parameters can be configured for the particular use case using environmental variables or programmatic initialization.
This project requires NodeJS (version 16 or later) and NPM. Node and NPM are really easy to install. To make sure you have them available on your machine, try running the following command.
$ npm -v && node -v
8.15.0
v16.17.0
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.
BEFORE YOU INSTALL: please read the prerequisites
To install and set up the library, run:
$ npm install cluster-harakiri
Or if you prefer using Yarn:
$ yarn add cluster-harakiri
Start with cloning this repo on your local machine:
$ git clone https://github.com/smartfile/node-cluster-harakiri.git
$ cd node-cluster-harakiri
$ npm test
$ npm run lint
setupHarakiri(options)
Supported options and result fields for the setupHarakiri
method are listed below. Most options
are also available as environmental variables. It is not necessary to call this method. Options
can be set in the environment and this method will be called if not already called when workers
are created.
ttl
Type | Default value | Environmental variable |
---|---|---|
number | HARAKIRI_WORKER_TTL |
If present, the workers will be terminated after at least ttl
seconds.
connectionLimit
Type | Default value | Environmental variable |
---|---|---|
number | HARAKIRI_WORKER_CONN_LIMIT |
If present, the workers will be terminated after at least connectionLimit
connections.
checkInterval
Type | Default value | Environmental variable |
---|---|---|
number | 30 | HARAKIRI_WORKER_CHECK_INTERVAL |
The periodic interval, in seconds, to check if there are any workers to terminate.
termDelay
Type | Default value | Environmental variable |
---|---|---|
number | HARAKIRI_WORKER_TERM_DELAY |
If present, the amount of time to delay, in seconds, between terminating workers. This can be used to prevent many or all workers from being terminated at the same time.
closeTimeout
Type | Default value | Environmental variable |
---|---|---|
number | HARAKIRI_WORKER_CLOSE_TIMEOUT |
If present, the amount of time, in seconds, to wait for the worker to exit after termination. This can be used to prevent a worker from running indefinitely if the connection stays alive.
restartWorker
Type | Default value | Environmental variable |
---|---|---|
boolean | true |
If true, creates a new worker when a worker terminates.
- Fork it!
- Create your feature branch:
git checkout -b my-new-feature
- Add your changes:
git add .
- Commit your changes:
git commit -am 'Add some feature'
- Push to the branch:
git push origin my-new-feature
- Submit a pull request 😎
We use SemVer for versioning. For the versions available, see the tags on this repository.
- Clifton Barnes - cabarnes
MIT License © SmartFile