fh-cluster
Wraps node cluster module to allow cleaner usage
Install
npm install fh-cluster --save
Usage
Import the module, pass your application entrypoint function to it:
var express = ;var fhcluster = ; { var app = ; app; app;} //If numWorkers is set to undefined, then the number of CPUs will define the number of Workers.var numWorkers = 4;;
Bound Tasks
It is possible to assign tasks to a specific worker. This is useful for the case where only one instance is required (e.g. a scheduler that is intended to work on a single worker only).
Bound Tasks will attempt to bind to the preferred
worker. If the preferred
worker exits, the task will be assigned to another worker.
The preference of assigning a task will take into account the number of tasks assigned to other workers. The worker with the lowest number of tasks will be assigned the task.
var express = ;var fhcluster = ; { var app = ; app; app;} //If numWorkers is set to undefined, then the number of CPUs will define the number of Workers.var numWorkers = 4; //This task should be bound to worker 2.var preferredWorkerId = 2; //A unique ID identifying the task.var startEventId = "startMySingleTask"; //This function will be executed to start the task on the preferred worker or another worker if the preferred worker is not available.{ console;}; var singleTask = workerFunction: workerFunction preferredWorkerId: preferredWorkerId startEventId: startEventId; ;