lib-job-queue

2.1.0 • Public • Published

job queue

Build Status NPM version

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
})
 
// A task event occurs every time a new process starts.
// The process object started is emitted.
job.emitter.on('task', function (proc) {
  console.log('task started');
  proc.stdout.pipe(process.stdout);
  proc.stderr.pipe(process.stderr);
});
 
// An exit event occurs every time a child process exists.
// The exit status of the process is emitted.
job.emitter.on('exit', function (status) {
  console.log('task exited with code', status.code);
});
 
// An end event occurs when the last item in the queue exists.
// If you queue a task *after* an end event, you will have another end event.
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() {
  // this aborts immediately
  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  // the child process object
job.running  // the job has been halted or not
job.lastExit // exit status of the last process
job.pending  // any scheduled jobs
job.results  // results of completed jobs

results

Currently a job result only contains the exist status of the process

{
  code   : 0,
  signal : null
}

Readme

Keywords

none

Package Sidebar

Install

npm i lib-job-queue

Weekly Downloads

13

Version

2.1.0

License

MIT

Last publish

Collaborators

  • groundwater