Skip to content

ferrumfist/worker_manager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

worker_manager

Sending messages between threads based on the libraries cluster and promise

Installation

npm install worker_manager

Usage

File: index.js

var cluster = require('cluster');
var WorkerManager = require('./worker_manager').master(cluster);

const numCPUs = require('os').cpus().length;

cluster.setupMaster({
    exec: __dirname+"/worker.js"
});

var taskList = [];

for(var i=0; i<numCPUs; i++){
	var worker = cluster.fork();
	
	var task = WorkerManager.send(worker, 'hello', i+1);
	
	taskList.push(task);
}

Promise.all(taskList)
	.then(function(result){
		console.log(result);
		
		process.exit(0);
	});

File: worker.js

var WorkerManager = require('./worker_manager').slave();

WorkerManager.receive('hello', function(num){
	return new Promise(function(resolve, reject){
		resolve(num*5);
	});
});

About

Sending messages between threads based on the cluster libraries and promise

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published