$ gnpm install qjobs
Efficient queue job manager module for nodejs.
Jobs which needs to run in parallels, but in a controled maner, example:
(take a look at tests directory if you are looking for running samples)
var qjobs = new require('./qjobs');
// My non blocking main job
var myjob = function(args,next) {
setTimeout(function() {
console.log('Do something interesting here',args);
next();
},1000);
}
var q = new qjobs({maxConcurrency:10});
// Let's add 30 job to the queue
for (var i = 0; i<30; i++) {
q.add(myjob,[i,'test '+i]);
}
q.on('start',function() {
console.log('Starting ...');
});
q.on('end',function() {
console.log('... All jobs done');
});
q.on('jobStart',function(args) {
console.log('jobStart',args);
});
q.on('jobEnd',function(args) {
console.log('jobend',args);
// If i'm jobId 10, then make a pause of 5 sec
if (args._jobId == 10) {
q.pause(true);
setTimeout(function() {
q.pause(false);
},5000);
}
});
q.on('pause',function(since) {
console.log('in pause since '+since+' milliseconds');
});
q.on('unpause',function() {
console.log('pause end, continu ..');
});
q.run();
//q.abort() will empty jobs list
Copyright 2013 - present © cnpmjs.org | Home |