worker-communication
TypeScript icon, indicating that this package has built-in type declarations

1.0.8 • Public • Published

worker-communication

This module provide bilateral communication with callback between cluster worker and master, node.js child process is supported too.

Installation

npm i worker-communication

Usage

Master

import CPC from 'worker-communication';
import * as cluster from 'cluster';
// or       childProcess from 'child_process'
 
const cpc = new CPC();
 
const worker = cpc.tunnel(cluster.fork())
// or          cpc.tunnel(childProcess.fork('./worker.js'));
 
cpc.onWorker('requestJob', (req, res) => {
    res({
        reqHeader: req,
        timestamp: Date.now()
    }, null);
});
 
worker.sendJob('idle', 'just relax...');

Worker (cluster worker or child_process.fork())

import CPC from 'worker-communication';
 
const cpc = new CPC(); 
 
cpc.onMaster('idle', (req) => {
    console.log(req);
    // output: just relax...
});
 
let reqHeader = [123, 456];
 
cpc.sendJob('requestJob', reqHeader, (jobHeader, job) => {
    console.log(jobHeader);
    // output: { reqHeader: [123, 456], timestamp: 1577252484830 }
    console.log(job);
    // output: null
});

Note

Master & worker is relative, a worker can also be a master to the process it forks. So in this scenario, onMater() and onWorker() can be used at the same time to communicate its master and worker.

Package Sidebar

Install

npm i worker-communication

Weekly Downloads

1

Version

1.0.8

License

MIT

Unpacked Size

16 kB

Total Files

9

Last publish

Collaborators

  • scrwdrv