Slave is a tiny utility to allow you to create long-running slave processes for your node process and use these functions as promises. Create modules that run in separate processes without anyone even knowing!
Wrap your function in a slave. The function must either:
- Be a co-based generator function
- A function that returns a promise
- A synchronous function
Now, create a separate my-module/slave.js
file:
var slave = require('slave/slave');
var fn = require('./index.js'); // my main module
slave(fn); // it's wrapped!
Now you can create a my-module/master.js
file,
which runs slave.js
:
var master = require('slave/master');
module.exports = master(require.resolve('./slave.js'))
Now users have two ways to use this module. Directly:
var fn = require('my-module');
fn(1, 2).then(function (val) {
});
Using child processes:
var fn = require('my-module/master');
fn(1, 2).then(function (val) {
});
Create a function from a slavepath
,
which exports a slave.slave()
function.
Options are:
forks=0
- number of child processes to initiate immediately
fn
will always return a promise,
even if the wrapped function is synchronous.
Create a new child process.
Hooks a function into process
to allow the parent process to listen.