Package Exports
- slave
- slave/master
- slave/slave
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (slave) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
slave
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!
Walkthrough
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) {
});API
var fn = slave.master(slavepath, [options])
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.
fn.fork()
Create a new child process.
slave.slave(fn)
Hooks a function into process to allow the parent process to listen.