Simple async batch with concurrency control and progress reporting
JavaScript
316
251 commits
updated Sep 3, 2024
Simple async batch with concurrency control and progress reporting.
This is a Node.js module available through the
npm registry. Installation is done using the
npm install command:
$ npm install batch
var Batch = require('batch')
new Batch([options], [...fns])Create a new Batch, optionally passing an options object and/or a list of
functions (fns) to queue.
The options object may contain the following keys:
concurrency: set the default concurrency for the Batch, which can be changed
using batch.concurrency(n).throws: set the default throws for the Batch, which can be changed using
batch.throws(throws).batch.concurrency(n)Set concurrency to n.
batch.end([cb])Execute all queued functions in parallel, executing cb(err, results).
batch.push(fn)Queue a function.
batch.throws(throws)Set whether Batch will or will not throw up.
progress eventContains the "job" index, response value, duration information, and completion data.
{ index: 1,
value: 'bar',
pending: 2,
total: 3,
complete: 2,
percent: 66,
start: Thu Oct 04 2012 12:25:53 GMT-0700 (PDT),
end: Thu Oct 04 2012 12:25:53 GMT-0700 (PDT),
duration: 0 }
var Batch = require('batch')
, batch = new Batch;
batch.concurrency(4);
ids.forEach(function(id){
batch.push(function(done){
User.get(id, done);
});
});
batch.on('progress', function(e){
});
batch.end(function(err, users){
});
Simple async batch with concurrency control and progress reporting
JavaScript
316
251 commits
updated Sep 3, 2024
Simple async batch with concurrency control and progress reporting.
This is a Node.js module available through the
npm registry. Installation is done using the
npm install command:
$ npm install batch
var Batch = require('batch')
new Batch([options], [...fns])Create a new Batch, optionally passing an options object and/or a list of
functions (fns) to queue.
The options object may contain the following keys:
concurrency: set the default concurrency for the Batch, which can be changed
using batch.concurrency(n).throws: set the default throws for the Batch, which can be changed using
batch.throws(throws).batch.concurrency(n)Set concurrency to n.
batch.end([cb])Execute all queued functions in parallel, executing cb(err, results).
batch.push(fn)Queue a function.
batch.throws(throws)Set whether Batch will or will not throw up.
progress eventContains the "job" index, response value, duration information, and completion data.
{ index: 1,
value: 'bar',
pending: 2,
total: 3,
complete: 2,
percent: 66,
start: Thu Oct 04 2012 12:25:53 GMT-0700 (PDT),
end: Thu Oct 04 2012 12:25:53 GMT-0700 (PDT),
duration: 0 }
var Batch = require('batch')
, batch = new Batch;
batch.concurrency(4);
ids.forEach(function(id){
batch.push(function(done){
User.get(id, done);
});
});
batch.on('progress', function(e){
});
batch.end(function(err, users){
});