Я могу предложить вариант с использованием модуля 'cluster'. Тестировал решение для NodeJS 4.1.2 версии.
var cluster = require('cluster');
var http = require('http');
var numCPUs = require('os').cpus().length;
if (cluster.isMaster) {
// Fork workers.
var workers = [];
for (var i = 0; i < numCPUs && i < 2; i++) {
workers.push(cluster.fork());
}
//set worker technical callbacks
cluster.on('exit', function(worker, code, signal) {
console.log('worker ' + worker.process.pid + ' died');
});
cluster.on('online', function(worker, code, signal) {
console.log('worker ' + worker.id + ' ready');
});
//send messages to workers
workers[0].send(0);
workers[1].send(1);
//set callback for worker responses
cluster.on('message', function(msg) {
console.log("Master process received message "+msg);
workers[msg].kill();
});
}
else {
//worker logic for messages from master process
process.on('message', function(msg) {
if (msg == 0) {console.log("One logic");}
else if (msg == 1) {console.log("Second logic");}
console.log("Worker with id=" + cluster.worker.id + " received " + msg);
process.send(msg);
});
}