This library provides a wrapper around the standard node
clustermodule. 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.0These 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-harakiriOr if you prefer using Yarn:
$ yarn add cluster-harakiriStart 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 lintsetupHarakiri(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