12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- // 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);
|