1.3.6 • Published 4 months ago

@rayo/storm v1.3.6

Weekly downloads
42
License
MIT
Repository
github
Last release
4 months ago

Harness the full power of multi-core CPUs. storm will cluster your application and spawn an instance on each available core. You can expect performance gains of up to 150%.

storm will handle OS signals as expected.

storm is available, by default, with rayo.js. See rayo/options.storm

Install

$> npm i @rayo/storm

Use

import { storm } from '@rayo/storm';

const yourAwesomeFunction = () => {
  console.log(`Hello, I am worker ${process.pid}`);
};

storm(yourAwesomeFunction, {
  monitorPort: 31000
});

Once all worker processes have been spawned, storm will, by default, launch a monitoring service which will enable you to get basic metrics for each process.

The monitor service resource will be mapped to the /monitor path. Detailed information on each worker will be mapped to the /monitor/{workerId} path.

In the above example, the monitor service will be available at http://localhost:31000/monitor

The monitor service is WIP. However, this does not affect storm's stability.

API

storm(work , options = {})

@param   {function} Called when starting a worker process.
@param   {object}   [options]
@returns {void}
  • options.workers {number}

    • Number of workers to spawn.
    • Default: Number of available CPU cores.
  • options.master {function}

    • Called when starting the master process.
    • This will only be called once.
    • The master function will be passed one argument; the cluster.
  • options.keepAlive {boolean}

    • Whether the cluster should be kept alive or not. Fork new processes on process death.
    • Default: true
  • options.monitor {boolean}

    • Whether the cluster should be monitored or not.
    • Default: true
  • options.monitorPort {number}

    • Listen on this port for incoming /monitor connections.
    • If port is omitted or is 0, the operating system will assign an arbitrary, unused port.

Contribute

See our contributing notes.

License

MIT

1.3.6

4 months ago

1.3.5

8 months ago

1.3.4

8 months ago

1.3.2

8 months ago

1.3.0

2 years ago

1.2.6

2 years ago

1.2.5

2 years ago

1.2.4

2 years ago

1.2.2

4 years ago

1.2.1

4 years ago

1.2.0

4 years ago

1.1.11

5 years ago

1.1.10

5 years ago

1.1.9

5 years ago

1.1.7

5 years ago

1.1.6

5 years ago

1.1.5

5 years ago

1.1.4

5 years ago

1.1.3

6 years ago

1.1.2

6 years ago

1.1.1

6 years ago

1.1.0

6 years ago

1.0.1

6 years ago

1.0.0

6 years ago

0.2.2

6 years ago

0.2.1

6 years ago

0.2.0

6 years ago