74 lines
1.8 KiB
JavaScript
74 lines
1.8 KiB
JavaScript
|
|
||
|
// My non blocking main job
|
||
|
var myjob = function(args,next) {
|
||
|
|
||
|
// do nothing now but in 1 sec
|
||
|
|
||
|
setTimeout(function() {
|
||
|
|
||
|
// if i'm job id 10 or 20, let's add
|
||
|
// another job dynamicaly in the queue.
|
||
|
// It can be usefull for network operation (retry on timeout)
|
||
|
|
||
|
if (args._jobId==10||args._jobId==20) {
|
||
|
myQueueJobs.add(myjob,[999,'bla '+args._jobId]);
|
||
|
}
|
||
|
next();
|
||
|
},Math.random(1000)*2000);
|
||
|
}
|
||
|
|
||
|
// Notice the "new" before require, to be able to use more
|
||
|
// than one queue independently
|
||
|
var myQueueJobs = new require('../qjobs')();
|
||
|
|
||
|
// Let's add 30 job and add them to the queue
|
||
|
for (var i = 0; i<30; i++) {
|
||
|
myQueueJobs.add(myjob,[i,'test1']);
|
||
|
}
|
||
|
|
||
|
// I want to know when the first job has started
|
||
|
myQueueJobs.on('start',function() {
|
||
|
console.log('starting ...');
|
||
|
console.log(JSON.stringify(myQueueJobs.stats()));
|
||
|
});
|
||
|
|
||
|
// I want to know when the last job has ended
|
||
|
myQueueJobs.on('end',function() {
|
||
|
clearInterval(statId);
|
||
|
console.log('end');
|
||
|
console.log(JSON.stringify(myQueueJobs.stats()));
|
||
|
});
|
||
|
|
||
|
// I want to know when each job has started
|
||
|
myQueueJobs.on('jobStart',function(args) {
|
||
|
console.log('jobStart',args);
|
||
|
});
|
||
|
|
||
|
// I want to know when each job has ended
|
||
|
myQueueJobs.on('jobEnd',function(args) {
|
||
|
|
||
|
console.log('jobEnd',args);
|
||
|
|
||
|
// If i'm jobId 10, then make a pause of 5 sec
|
||
|
|
||
|
if (args._jobId == 10) {
|
||
|
myQueueJobs.pause(true);
|
||
|
setTimeout(function() {
|
||
|
myQueueJobs.pause(false);
|
||
|
},5000);
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// I want to know if queue is in pause every sec
|
||
|
myQueueJobs.on('pause',function(since) {
|
||
|
console.log('in pause since '+since+' milliseconds');
|
||
|
});
|
||
|
|
||
|
|
||
|
// JOBS !! leeeeeeeeeet's staaaaaaaart !
|
||
|
myQueueJobs.run();
|
||
|
|
||
|
var statId = setInterval(function() {
|
||
|
console.log(JSON.stringify(myQueueJobs.stats()));
|
||
|
},1000);
|