process-cluster
TypeScript icon, indicating that this package has built-in type declarations

1.0.4 • Public • Published

Process cluster

process-cluster will asist you in creating any child process cluster, it uses forever-process to makes sure that cluster will run forever.

Features

  • Fork a child process
  • Spawn any process
  • Fork a chile process with node cluster capabilities
  • To any size of cluster
  • Cluster will run forever, we use forever-process to make sure it does.

Simple usage

Creating a cluster of Node cluster module. Notice, the with this multiple nodejs process will be able to "share"(over IPC) the same port when receiving any net requst such as http.

const {ProcessCluster} = require('process-cluster');
const cluster = require('cluster');
const processCluster = new ProcessCluster({
    size : 3,
    fork(){
        cluster.setupMaster({
                exec : `${prcessPath}`,
                args : [ 
                    ...process.argv.slice(2)
                ]
            });
        return cluster.fork();
    }
});
processCluster.on('childProcess' , (childProcess)=>{
    console.log('You can do any operation on `childProcess`');
});
processCluster.on('childProcessRemoved' , (childProcess)=>{
    console.log('Removed');
});
processCluster.start();
 

Creating a cluster of Node process with IPC communication without 'port' sharing.

const {ProcessCluster} = require('process-cluster');
const {fork} = require('child_process');
const processCluster = new ProcessCluster({
    size : 3,
    fork(){
        return fork(`${prcessPath}`);
    }
});
processCluster.on('childProcess' , (childProcess)=>{
    console.log('You can do any operation on `childProcess`');
});
processCluster.on('childProcessRemoved' , (childProcess)=>{
    console.log('Removed');
});
processCluster.start();
 

API

Well, the API is quite simple. You can see this TypeScript declaration.

declare module ProcessCluster {
    export class ProcessCluster extends EventEmitter{
        constructor(options : {
            size : number,
            fork : ()=>ChildProcess
        });
        public createForkedChild():void;
        public removeForkedChild(child? : any):void;
        public forkToDetination():void;
        public increaseBy(size : number):void;
        public decreaseBy(size : number):void;
        public stop():void;
        public start():void;
    }
}

License

MIT

Dependencies (1)

Dev Dependencies (5)

Package Sidebar

Install

npm i process-cluster

Weekly Downloads

0

Version

1.0.4

License

MIT

Unpacked Size

9.1 kB

Total Files

9

Last publish

Collaborators

  • hiscojs