Necessary Pigeonholing Mechanism
    Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »

    cluster-hubpublic

    node-cluster-hub

    A layer for communcation between master and worker processes

    Installation

    npm install cluster-hub

    Getting started

    var Hub  = require('cluster-hub');
    var cluster = require('cluster');
    var hub = new Hub();
     
    if (cluster.isMaster) {
        // in master process 
        hub.on('sum', function (data, sender, callback) {
            callback(null, data.a + data.b);
        });
     
        var worker = cluster.fork();
    } else {
        //in worker process 
        hub.requestMaster('sum', {a: 1, b:2}, function (err, sum) {
            console.log('Sum in worker: ' + sum);
            process.exit();
        });
    }

    Simple message sending

    hub.sendToMaster(message, data);  //works from workers and master 
    hub.sendToWorker(worker, message, data);  // works from master 
    hub.sendToWorkers(message, data);

    Examples:

    Requests between master and workers (with callback)

    Same as simple messaging, but you can provide a callback

    hub.requestMaster(message, data, callback);  //works from workers and master 
    hub.requestWorker(worker, message, data, callback);  // works from master 

    Example in "Getting Started" section, and here: https://github.com/sirian/node-cluster-hub/blob/master/examples/requests.js

    Exclusive Locks

    This module provide a way to get global exclusive lock between all processes (master and workers). If worker process dies while holding locked section - lock will be released automatically.

     
    // this method available in master and in workers 
    hub.lock(lockKey, function(unlock) {
        // exclusive lock here 
       ...
       // to unlock - call unlock() 
    })

    Example: https://github.com/sirian/node-cluster-hub/blob/master/examples/locks.js

    Examples

    More examples here: https://github.com/sirian/node-cluster-hub/tree/master/examples

    install

    npm i cluster-hub

    Downloadslast 7 days

    179

    version

    0.1.2

    license

    none

    repository

    github.com

    last publish

    collaborators

    • avatar