Files
react-native-devtools-frontend/node_modules/qjobs
Tim van der Lippe 2a1ede5c26 Fix newline additions in package.json files in node_modules/
`manage_node_deps.py` was changed in
https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2259834
to add line endings at the end of the package.json file

However, `npm run install-deps` was not rerun to add the line endings.
To prevent future CLs that add deps to include the line ending changes,
fix them in this CL.

R=mathias@chromium.org

Change-Id: Id4ee0003520c4aa0cb55494cdf64df57e31a86d7
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2263952
Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org>
Commit-Queue: Mathias Bynens <mathias@chromium.org>
Auto-Submit: Tim van der Lippe <tvanderlippe@chromium.org>
Reviewed-by: Mathias Bynens <mathias@chromium.org>
2020-06-24 12:59:49 +00:00
..
2019-10-21 08:08:56 +02:00
2019-10-21 08:08:56 +02:00
2019-10-21 08:08:56 +02:00
2019-10-21 08:08:56 +02:00
2019-10-21 08:08:56 +02:00
2019-10-21 08:08:56 +02:00
2019-10-21 08:08:56 +02:00

Build Status

qjobs

Efficient queue job manager module for nodejs.

Features

  • Concurrency limiter
  • Dynamic queue, a job can be added while the queue is running
  • Optional delay before continuing after max concurrency has been reached
  • Support of pause/unpause
  • Events emitter based: start, end, sleep, continu, jobStart, jobEnd
  • Quick statistic function, so you can know where the queue is, at regular interval

For what it can be usefull ?

Jobs which needs to run in parallels, but in a controled maner, example:

  • Network scanners
  • Parallels monitoring jobs
  • Images/Videos related jobs

Compatibility :

  • not tested with nodejs < 0.10

Examples

(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