{"_id":"@depup/qjobs","name":"@depup/qjobs","dist-tags":{"latest":"1.2.0-depup.0"},"versions":{"1.2.0-depup.0":{"name":"@depup/qjobs","version":"1.2.0-depup.0","description":"[DepUp] qjobs is a simple and stupid queue job manager for nodejs","main":"qjobs.js","directories":{"example":"examples"},"scripts":{"test":"make test"},"engines":{"node":">=0.9"},"repository":{"type":"git","url":"git://github.com/franck34/qjobs.git"},"keywords":["depup","dependency-bumped","updated-deps","qjobs","queue","jobs","job","concurrency","control"],"author":{"name":"Franck TABARY"},"license":"MIT","gitHead":"6b6ea2dd626799e946ab700e4c4902ab792d3bb2","depup":{"changes":{},"depsUpdated":0,"originalPackage":"qjobs","originalVersion":"1.2.0","processedAt":"2026-03-17T16:37:44.991Z","smokeTest":"passed"},"_id":"@depup/qjobs@1.2.0-depup.0","bugs":{"url":"https://github.com/franck34/qjobs/issues"},"homepage":"https://github.com/franck34/qjobs#readme","_nodeVersion":"24.14.0","_npmVersion":"11.9.0","dist":{"integrity":"sha512-LNfsISo5KWN6kllVHCv7w+AFm6UpjNvmW5KsHjBQe+Ow4ayWb9Vj1UEfn1G0XMFCUtTGDlvDw+8304j7dzGEaw==","shasum":"8fbd4848f60cc3657ef24cd4d2e5cda43c703d90","tarball":"https://registry.npmjs.org/@depup/qjobs/-/qjobs-1.2.0-depup.0.tgz","fileCount":14,"unpackedSize":17927,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCQDhmbDbLqtun6aFs96GlBLsoPTDK6uLFwRqU8xihnNwIhANyH427I85qW41FVeLqcd4L729t6NBqatyY8jhVgrL0r"}]},"_npmUser":{"name":"chiefmikey","email":"wolfemikl@gmail.com"},"maintainers":[{"name":"chiefmikey","email":"wolfemikl@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/qjobs_1.2.0-depup.0_1773765466661_0.8837909482653441"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-17T16:37:46.577Z","1.2.0-depup.0":"2026-03-17T16:37:46.830Z","modified":"2026-03-17T16:37:47.053Z"},"maintainers":[{"name":"chiefmikey","email":"wolfemikl@gmail.com"}],"description":"[DepUp] qjobs is a simple and stupid queue job manager for nodejs","homepage":"https://github.com/franck34/qjobs#readme","keywords":["depup","dependency-bumped","updated-deps","qjobs","queue","jobs","job","concurrency","control"],"repository":{"type":"git","url":"git://github.com/franck34/qjobs.git"},"author":{"name":"Franck TABARY"},"bugs":{"url":"https://github.com/franck34/qjobs/issues"},"license":"MIT","readme":"[![Build Status](https://secure.travis-ci.org/franck34/qjobs.png)](http://travis-ci.org/franck34/qjobs)\n\n**qjobs**\n==================\n***Efficient queue job manager module for nodejs.***\n\nFeatures\n--------------\n* Concurrency limiter\n* Dynamic queue, a job can be added while the queue is running\n* Optional delay before continuing after max concurrency has been reached\n* Support of pause/unpause\n* Events emitter based: start, end, sleep, continu, jobStart, jobEnd\n* Quick statistic function, so you can know where the queue is, at regular interval\n\nFor what it can be usefull ?\n---------------------\nJobs which needs to run in parallels, but in a controled maner, example: \n* Network scanners\n* Parallels monitoring jobs\n* Images/Videos related jobs \n\n\nCompatibility :\n------------------\n* not tested with nodejs < 0.10\n\n\nExamples\n--------------------\n\n(take a look at tests directory if you are looking for running samples)\n\n\n```\nvar qjobs = new require('./qjobs');\n                                \n// My non blocking main job     \nvar myjob = function(args,next) {\n    setTimeout(function() {\n        console.log('Do something interesting here',args);\n        next();\n    },1000);\n}\n\nvar q = new qjobs({maxConcurrency:10});\n\n// Let's add 30 job to the queue\nfor (var i = 0; i<30; i++) {\n    q.add(myjob,[i,'test '+i]);\n}\n\nq.on('start',function() {\n    console.log('Starting ...');\n});\n\nq.on('end',function() {\n    console.log('... All jobs done');\n});\n\nq.on('jobStart',function(args) {\n    console.log('jobStart',args);\n});\n\nq.on('jobEnd',function(args) {\n\n    console.log('jobend',args);\n\n    // If i'm jobId 10, then make a pause of 5 sec\n\n    if (args._jobId == 10) {\n        q.pause(true);\n        setTimeout(function() {\n            q.pause(false);\n        },5000);\n    }\n});\n\nq.on('pause',function(since) {\n    console.log('in pause since '+since+' milliseconds');\n});\n\nq.on('unpause',function() {\n    console.log('pause end, continu ..');\n});\n\nq.run();\n\n//q.abort() will empty jobs list\n\n```\n\n","readmeFilename":"Readme.md","_rev":"1-7de4a322141d2741bf748d197add4e26"}