job queue

install
npm install --save lib-job-queue
usage
Run a sequence of tasks in order,
where each task is a child process.
var Job = require('lib-job-queue')();
var job = Job.New();
job.add({
exec: 'ps',
args: ['aux'],
envs: process.env
});
job.add({
exec: 'ps',
args: ['-ef'],
envs: process.env
})
job.emitter.on('task', function (proc) {
console.log('task started');
proc.stdout.pipe(process.stdout);
proc.stderr.pipe(process.stderr);
});
job.emitter.on('exit', function (status) {
console.log('task exited with code', status.code);
});
job.emitter.on('end', function () {
console.log('job exited');
});
Abort a job, killing the in-process task and ending the sequence.
job.add({
exec: 'node',
args: ['-e', 'setTimeout(function(){}, 100000)'],
envs: process.env
});
job.add({
exec: 'node',
args: ['-e', 'setTimeout(function(){}, 100000)'],
envs: process.env
});
job.emitter.on('task', function() {
job.abort();
});
Calling abort irrevocably kills your job, and all tasks associated with it.
The default kill signal is SIGKILL because catchable signals are non-deterministic.
You can specify another signal to abort() if you like.
job properties
job.current
job.running
job.lastExit
job.pending
job.results
results
Currently a job result only contains the exist status of the process
{
code : 0,
signal : null
}