node-blaster
TypeScript icon, indicating that this package has built-in type declarations

1.0.4 • Public • Published

Node Blaster

kentonbmax

Description

Creates child processes using nodejs files to distribute work. Utilizes the process.send to pipe data to the workers. Workers run in strict mode.

Setup

Installation npm install node-blaster -s

Options

  1. maxWorkers defaults to 1, use your pysical cores as a guide where main thread is running this library. (physical cores -1)

Use

Using this library requires a js file that can run as a seperate process.

hellowork.js

// do work
const fs = require('fs');
console.log(`Hello World of work ${new Date()}`);

process.on('message', (msg) =>{
    fs.writeFileSync(msg.path, JSON.stringify(msg.data));
})

index.js

const { NodeBlaster } = require('node-blaster');

//create the instance
const blaster = new NodeBlaster('./hellowork.js', {maxWorkers: 3});

function doWork() {
    blaster.send({path: './file1.text', data : {"Value": "JSON data3"}});
    blaster.send({path: './file2.text', data : {"Value": "JSON data2"}});
    blaster.send({path: './file3.text', data : {"Value": "JSON data1"}});

    // write again

    blaster.send({path: './file4.text', data : {"Value": "JSON data3"}});
    blaster.send({path: './file5.text', data : {"Value": "JSON data2"}});
    blaster.send({path: './file6.text', data : {"Value": "JSON data1"}});
}

doWork()
// stop all child processes
setTimeout(() =>{blaster.stop(true);}, 1000);

Uses

  • Writing lots of files. (use streams)
  • Making any self contained node file/process a worker process.
  • melting CPU's :)

Dependencies (0)

    Dev Dependencies (11)

    Package Sidebar

    Install

    npm i node-blaster

    Weekly Downloads

    6

    Version

    1.0.4

    License

    MIT

    Unpacked Size

    14.5 kB

    Total Files

    20

    Last publish

    Collaborators

    • kentonbmax