{"_id":"better-queue","_rev":"3388972","name":"better-queue","description":"Better Queue for NodeJS","dist-tags":{"latest":"3.8.12"},"maintainers":[{"name":"diam","email":"ops@diamond.io"},{"name":"leander","email":"me@leander.ca"}],"time":{"modified":"2024-08-27T18:59:46.000Z","created":"2016-03-06T11:02:03.621Z","3.8.12":"2022-09-22T18:29:44.249Z","3.8.11":"2022-09-07T22:53:43.679Z","3.8.10":"2018-07-26T13:17:44.988Z","3.8.8":"2018-07-26T11:23:50.951Z","3.8.7":"2018-04-06T22:37:29.176Z","3.8.6":"2017-09-11T10:08:37.063Z","3.8.5":"2017-03-21T20:55:49.086Z","3.8.4":"2016-11-03T22:25:54.602Z","3.8.3":"2016-10-27T20:37:07.321Z","3.8.2":"2016-08-05T22:15:13.679Z","3.7.21":"2016-07-29T12:21:46.867Z","3.7.20":"2016-07-18T01:14:52.495Z","3.7.19":"2016-07-13T00:55:30.748Z","3.7.18":"2016-07-13T00:36:52.537Z","3.7.17":"2016-06-04T04:29:32.724Z","3.7.16":"2016-05-27T19:24:02.431Z","3.7.15":"2016-05-27T19:09:31.979Z","3.7.14":"2016-05-25T18:49:46.729Z","3.7.13":"2016-05-21T00:21:05.053Z","3.7.12":"2016-05-21T00:18:08.426Z","3.7.11":"2016-05-21T00:11:48.455Z","3.7.9":"2016-05-20T23:40:55.741Z","3.7.8":"2016-05-18T00:32:34.342Z","3.7.7":"2016-05-17T00:51:15.504Z","3.7.6":"2016-05-13T22:46:41.745Z","3.7.5":"2016-05-13T19:54:18.208Z","3.7.4":"2016-05-13T19:23:44.859Z","3.7.3":"2016-05-12T00:18:32.818Z","3.7.2":"2016-05-10T00:49:03.425Z","3.7.1":"2016-04-28T20:35:46.819Z","3.7.0":"2016-04-28T19:30:52.096Z","3.6.2":"2016-04-28T18:26:19.680Z","3.6.1":"2016-04-28T06:45:43.048Z","3.6.0":"2016-04-28T06:32:30.140Z","3.5.2":"2016-04-27T23:20:55.915Z","3.5.1":"2016-04-23T00:37:08.105Z","3.5.0":"2016-04-14T08:25:25.955Z","3.4.3":"2016-04-07T23:56:46.275Z","3.4.2":"2016-04-07T19:20:23.946Z","3.4.1":"2016-04-06T09:01:04.160Z","3.4.0":"2016-04-06T08:51:13.085Z","3.3.0":"2016-04-04T11:51:29.550Z","3.2.6":"2016-03-18T01:44:55.255Z","3.2.5":"2016-03-18T01:43:24.630Z","3.2.3":"2016-03-17T22:58:55.342Z","3.2.2":"2016-03-17T22:41:02.253Z","3.2.1":"2016-03-17T21:51:29.621Z","3.2.0":"2016-03-16T02:31:32.621Z","3.1.1":"2016-03-15T22:38:52.054Z","3.1.0":"2016-03-14T19:39:47.211Z","3.0.1":"2016-03-12T10:00:59.855Z","2.2.3":"2016-03-11T21:33:43.283Z","2.2.2":"2016-03-11T00:42:21.723Z","2.2.1":"2016-03-09T23:47:52.490Z","2.2.0":"2016-03-09T19:32:52.713Z","2.1.1":"2016-03-08T23:33:38.442Z","2.1.0":"2016-03-08T21:08:30.144Z","1.0.1":"2016-03-06T17:19:16.481Z","1.0.0":"2016-03-06T11:02:03.621Z"},"users":{"mhaidarh":true,"arthurwdev":true,"hasch":true,"jns":true,"tzq1011":true,"jaseeey":true},"author":{"name":"Diamond Inc.","email":"ops@diamond.io"},"repository":{"type":"git","url":"git+https://github.com/diamondio/better-queue.git"},"versions":{"3.8.12":{"name":"better-queue","version":"3.8.12","description":"Better Queue for NodeJS","main":"lib/queue.js","directories":{"test":"test"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"git+https://github.com/diamondio/better-queue.git"},"keywords":["queue","cargo","async","timeout","priority"],"author":{"name":"Diamond Inc.","email":"ops@diamond.io"},"license":"MIT","bugs":{"url":"https://github.com/diamondio/better-queue/issues"},"homepage":"https://github.com/diamondio/better-queue","devDependencies":{"mocha":"^10.0.0","mocha-junit-reporter":"^1.12.1"},"dependencies":{"better-queue-memory":"^1.0.1","node-eta":"^0.9.0","uuid":"^9.0.0"},"gitHead":"2fa141b3a0f640f4f05873d1b4dbf29b6c70d35b","_id":"better-queue@3.8.12","_nodeVersion":"16.15.1","_npmVersion":"8.11.0","dist":{"shasum":"15c18923d0f9778be94f19c3ef2bd85c632d0db3","size":18940,"noattachment":false,"key":"/better-queue/-/better-queue-3.8.12.tgz","tarball":"http://registry.cnpm.dingdandao.com/better-queue/download/better-queue-3.8.12.tgz"},"_npmUser":{"name":"leander","email":"me@leander.ca"},"maintainers":[{"name":"diam","email":"ops@diamond.io"},{"name":"leander","email":"me@leander.ca"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/better-queue_3.8.12_1663871384025_0.0104130571568537"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2022-09-22T18:30:44.467Z","publish_time":1663871384249,"_cnpm_publish_time":1663871384249},"3.8.11":{"name":"better-queue","version":"3.8.11","description":"Better Queue for NodeJS","main":"lib/queue.js","directories":{"test":"test"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"git+https://github.com/diamondio/better-queue.git"},"keywords":["queue","cargo","async","timeout","priority"],"author":{"name":"Diamond Inc.","email":"ops@diamond.io"},"license":"MIT","bugs":{"url":"https://github.com/diamondio/better-queue/issues"},"homepage":"https://github.com/diamondio/better-queue","devDependencies":{"mocha":"^10.0.0","mocha-junit-reporter":"^1.12.1"},"dependencies":{"better-queue-memory":"^1.0.1","node-eta":"^0.9.0","uuid":"^9.0.0"},"gitHead":"7e75bd70b82bab2819ab314ea885d4d3271b9ae5","_id":"better-queue@3.8.11","_nodeVersion":"16.15.1","_npmVersion":"8.11.0","dist":{"shasum":"8b63203793b30590891f40ee7bca9eeedb3c3106","size":18751,"noattachment":false,"key":"/better-queue/-/better-queue-3.8.11.tgz","tarball":"http://registry.cnpm.dingdandao.com/better-queue/download/better-queue-3.8.11.tgz"},"_npmUser":{"name":"diam","email":"ops@diamond.io"},"maintainers":[{"name":"diam","email":"ops@diamond.io"},{"name":"leander","email":"me@leander.ca"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/better-queue_3.8.11_1662591223510_0.3363887931743832"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2022-09-07T22:53:57.323Z","publish_time":1662591223679,"_cnpm_publish_time":1662591223679},"3.8.10":{"name":"better-queue","version":"3.8.10","description":"Better Queue for NodeJS","main":"lib/queue.js","directories":{"test":"test"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"https://github.com/diamondio/better-queue.git"},"keywords":["queue","cargo","async","timeout","priority"],"author":{"name":"Diamond Inc.","email":"ops@diamond.io"},"license":"MIT","bugs":{"url":"https://github.com/diamondio/better-queue/issues"},"homepage":"https://github.com/diamondio/better-queue","devDependencies":{"mocha":"^2.3.4","mocha-junit-reporter":"^1.12.1"},"dependencies":{"better-queue-memory":"^1.0.1","node-eta":"^0.9.0","uuid":"^3.0.0"},"gitHead":"792a5d10062f3a7831e275a0521c6e19b492c204","_id":"better-queue@3.8.10","_npmVersion":"5.3.0","_nodeVersion":"8.6.0","_npmUser":{"name":"leander","email":"me@leander.ca"},"dist":{"shasum":"1c93b9ec4cb3d1b72eb91d0efcb84fc80e8c6835","size":18719,"noattachment":false,"key":"/better-queue/-/better-queue-3.8.10.tgz","tarball":"http://registry.cnpm.dingdandao.com/better-queue/download/better-queue-3.8.10.tgz"},"maintainers":[{"name":"diam","email":"ops@diamond.io"},{"name":"leander","email":"me@leander.ca"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/better-queue_3.8.10_1532611064805_0.07234525127342217"},"_hasShrinkwrap":false,"publish_time":1532611064988,"_cnpm_publish_time":1532611064988},"3.8.8":{"name":"better-queue","version":"3.8.8","description":"Better Queue for NodeJS","main":"lib/queue.js","directories":{"test":"test"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"https://github.com/diamondio/better-queue.git"},"keywords":["queue","cargo","async","timeout","priority"],"author":{"name":"Diamond Inc.","email":"ops@diamond.io"},"license":"MIT","bugs":{"url":"https://github.com/diamondio/better-queue/issues"},"homepage":"https://github.com/diamondio/better-queue","devDependencies":{"mocha":"^2.3.4","mocha-junit-reporter":"^1.12.1"},"dependencies":{"better-queue-memory":"^1.0.1","node-eta":"^0.9.0","uuid":"^3.0.0"},"gitHead":"a26abed8f3a863d113987a1129c42a03e093b7f8","_id":"better-queue@3.8.8","_npmVersion":"5.3.0","_nodeVersion":"8.6.0","_npmUser":{"name":"leander","email":"me@leander.ca"},"dist":{"shasum":"0200e3921c522ff0ec533ca8194817a92da3658c","size":18876,"noattachment":false,"key":"/better-queue/-/better-queue-3.8.8.tgz","tarball":"http://registry.cnpm.dingdandao.com/better-queue/download/better-queue-3.8.8.tgz"},"maintainers":[{"name":"diam","email":"ops@diamond.io"},{"name":"leander","email":"me@leander.ca"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/better-queue_3.8.8_1532604230836_0.6120246727788361"},"_hasShrinkwrap":false,"publish_time":1532604230951,"_cnpm_publish_time":1532604230951},"3.8.7":{"name":"better-queue","version":"3.8.7","description":"Better Queue for NodeJS","main":"lib/queue.js","directories":{"test":"test"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"https://github.com/diamondio/better-queue.git"},"keywords":["queue","cargo","async","timeout","priority"],"author":{"name":"Diamond Inc.","email":"ops@diamond.io"},"license":"MIT","bugs":{"url":"https://github.com/diamondio/better-queue/issues"},"homepage":"https://github.com/diamondio/better-queue","devDependencies":{"mocha":"^2.3.4","mocha-junit-reporter":"^1.12.1"},"dependencies":{"better-queue-memory":"^1.0.1","node-eta":"^0.9.0","uuid":"^3.0.0"},"gitHead":"698b3146b9ffb38e6a9c6fa765e1ca8012f548f4","_id":"better-queue@3.8.7","_npmVersion":"5.3.0","_nodeVersion":"8.6.0","_npmUser":{"name":"leander","email":"me@leander.ca"},"dist":{"shasum":"de39b82b05f55d92ba065c9066958dad80789ab3","size":18719,"noattachment":false,"key":"/better-queue/-/better-queue-3.8.7.tgz","tarball":"http://registry.cnpm.dingdandao.com/better-queue/download/better-queue-3.8.7.tgz"},"maintainers":[{"name":"diam","email":"ops@diamond.io"},{"name":"leander","email":"me@leander.ca"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/better-queue_3.8.7_1523054249111_0.6457429054626065"},"_hasShrinkwrap":false,"publish_time":1523054249176,"_cnpm_publish_time":1523054249176},"3.8.6":{"name":"better-queue","version":"3.8.6","description":"Better Queue for NodeJS","main":"lib/queue.js","directories":{"test":"test"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"git+https://github.com/diamondio/better-queue.git"},"keywords":["queue","cargo","async","timeout","priority"],"author":{"name":"Diamond Inc.","email":"ops@diamond.io"},"license":"MIT","bugs":{"url":"https://github.com/diamondio/better-queue/issues"},"homepage":"https://github.com/diamondio/better-queue","devDependencies":{"mocha":"^2.3.4","mocha-junit-reporter":"^1.12.1"},"dependencies":{"better-queue-memory":"^1.0.1","node-eta":"^0.9.0","uuid":"^3.0.0"},"gitHead":"7fd3209caa1e9f54a693091e1ecb49762162ef82","_id":"better-queue@3.8.6","_shasum":"73220bdfab403924cffa7497220dd387abb73a63","_from":".","_npmVersion":"4.6.1","_nodeVersion":"7.9.0","_npmUser":{"name":"diam","email":"ops@diamond.io"},"dist":{"shasum":"73220bdfab403924cffa7497220dd387abb73a63","size":18725,"noattachment":false,"key":"/better-queue/-/better-queue-3.8.6.tgz","tarball":"http://registry.cnpm.dingdandao.com/better-queue/download/better-queue-3.8.6.tgz"},"maintainers":[{"name":"diam","email":"ops@diamond.io"},{"name":"leander","email":"me@leander.ca"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/better-queue-3.8.6.tgz_1505124516960_0.9650492111686617"},"publish_time":1505124517063,"_cnpm_publish_time":1505124517063,"_hasShrinkwrap":false},"3.8.5":{"name":"better-queue","version":"3.8.5","description":"Better Queue for NodeJS","main":"lib/queue.js","directories":{"test":"test"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"git+https://github.com/diamondio/better-queue.git"},"keywords":["queue","cargo","async","timeout","priority"],"author":{"name":"Diamond Inc.","email":"ops@diamond.io"},"license":"MIT","bugs":{"url":"https://github.com/diamondio/better-queue/issues"},"homepage":"https://github.com/diamondio/better-queue","devDependencies":{"mocha":"^2.3.4","mocha-junit-reporter":"^1.12.1"},"dependencies":{"better-queue-memory":"^1.0.1","node-eta":"^0.9.0","uuid":"^3.0.0"},"gitHead":"c9491b25e14ef636463167614bfe23b6a092d06d","_id":"better-queue@3.8.5","_shasum":"fc02f085556ec3d22f671ee914102b3cf9b15de6","_from":".","_npmVersion":"2.15.8","_nodeVersion":"4.4.7","_npmUser":{"name":"diam","email":"ops@diamond.io"},"dist":{"shasum":"fc02f085556ec3d22f671ee914102b3cf9b15de6","size":18676,"noattachment":false,"key":"/better-queue/-/better-queue-3.8.5.tgz","tarball":"http://registry.cnpm.dingdandao.com/better-queue/download/better-queue-3.8.5.tgz"},"maintainers":[{"name":"diam","email":"ops@diamond.io"},{"name":"leander","email":"me@leander.ca"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/better-queue-3.8.5.tgz_1490129748832_0.37026605918072164"},"publish_time":1490129749086,"_cnpm_publish_time":1490129749086,"_hasShrinkwrap":false},"3.8.4":{"name":"better-queue","version":"3.8.4","description":"Better Queue for NodeJS","main":"lib/queue.js","directories":{"test":"test"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"git+https://github.com/diamondio/better-queue.git"},"keywords":["queue","cargo","async","timeout","priority"],"author":{"name":"Diamond Inc.","email":"ops@diamond.io"},"license":"MIT","bugs":{"url":"https://github.com/diamondio/better-queue/issues"},"homepage":"https://github.com/diamondio/better-queue","devDependencies":{"mocha":"^2.3.4","mocha-junit-reporter":"^1.12.1"},"dependencies":{"better-queue-memory":"^1.0.1","node-eta":"^0.9.0","node-uuid":"^1.4.7"},"gitHead":"b55bf82a095beb5356b0ea613decd8cb5c36bcd7","_id":"better-queue@3.8.4","_shasum":"461106b3c018bd9ae53a272a2f3126f96a6ac328","_from":".","_npmVersion":"3.8.6","_nodeVersion":"5.11.1","_npmUser":{"name":"diam","email":"ops@diamond.io"},"dist":{"shasum":"461106b3c018bd9ae53a272a2f3126f96a6ac328","size":18675,"noattachment":false,"key":"/better-queue/-/better-queue-3.8.4.tgz","tarball":"http://registry.cnpm.dingdandao.com/better-queue/download/better-queue-3.8.4.tgz"},"maintainers":[{"name":"diam","email":"ops@diamond.io"},{"name":"leander","email":"me@leander.ca"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/better-queue-3.8.4.tgz_1478211952684_0.9697346284519881"},"publish_time":1478211954602,"_cnpm_publish_time":1478211954602,"_hasShrinkwrap":false},"3.8.3":{"name":"better-queue","version":"3.8.3","description":"Better Queue for NodeJS","main":"lib/queue.js","directories":{"test":"test"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"git+https://github.com/diamondio/better-queue.git"},"keywords":["queue","cargo","async","timeout","priority"],"author":{"name":"Diamond Inc.","email":"ops@diamond.io"},"license":"MIT","bugs":{"url":"https://github.com/diamondio/better-queue/issues"},"homepage":"https://github.com/diamondio/better-queue","devDependencies":{"mocha":"^2.3.4"},"dependencies":{"better-queue-memory":"^1.0.1","node-eta":"^0.9.0","node-uuid":"^1.4.7"},"gitHead":"ca9d8f2b2ded921a61448bd75f8aa00d5019307f","_id":"better-queue@3.8.3","_shasum":"24181bf55b396f015795149221e28edb962b8833","_from":".","_npmVersion":"3.8.6","_nodeVersion":"5.11.1","_npmUser":{"name":"diam","email":"ops@diamond.io"},"dist":{"shasum":"24181bf55b396f015795149221e28edb962b8833","size":18532,"noattachment":false,"key":"/better-queue/-/better-queue-3.8.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/better-queue/download/better-queue-3.8.3.tgz"},"maintainers":[{"name":"diam","email":"ops@diamond.io"},{"name":"leander","email":"me@leander.ca"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/better-queue-3.8.3.tgz_1477600623694_0.4993576642591506"},"publish_time":1477600627321,"_cnpm_publish_time":1477600627321,"_hasShrinkwrap":false},"3.8.2":{"name":"better-queue","version":"3.8.2","description":"Better Queue for NodeJS","main":"lib/queue.js","directories":{"test":"test"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"git+https://github.com/diamondio/better-queue.git"},"keywords":["queue","cargo","async","timeout","priority"],"author":{"name":"Diamond Inc.","email":"ops@diamond.io"},"license":"MIT","bugs":{"url":"https://github.com/diamondio/better-queue/issues"},"homepage":"https://github.com/diamondio/better-queue","devDependencies":{"mocha":"^2.3.4"},"dependencies":{"better-queue-memory":"^1.0.1","node-eta":"^0.9.0","node-uuid":"^1.4.7"},"gitHead":"66be88a2a68b00aff2ac9545fe004dad52b0e49d","_id":"better-queue@3.8.2","_shasum":"3dd29ba2716781d5e9a83b79663ec35f76cb3469","_from":".","_npmVersion":"3.10.6","_nodeVersion":"6.3.1","_npmUser":{"name":"diam","email":"ops@diamond.io"},"dist":{"shasum":"3dd29ba2716781d5e9a83b79663ec35f76cb3469","size":18659,"noattachment":false,"key":"/better-queue/-/better-queue-3.8.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/better-queue/download/better-queue-3.8.2.tgz"},"maintainers":[{"name":"diam","email":"ops@diamond.io"},{"name":"leander","email":"me@leander.ca"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/better-queue-3.8.2.tgz_1470435310504_0.7980791328009218"},"publish_time":1470435313679,"_cnpm_publish_time":1470435313679,"_hasShrinkwrap":false},"3.7.21":{"name":"better-queue","version":"3.7.21","description":"Better Queue for NodeJS","main":"lib/queue.js","directories":{"test":"test"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"https://github.com/diamondio/better-queue.git"},"keywords":["queue","cargo","async","timeout","priority"],"author":{"name":"Diamond Inc.","email":"ops@diamond.io"},"license":"MIT","bugs":{"url":"https://github.com/diamondio/better-queue/issues"},"homepage":"https://github.com/diamondio/better-queue","devDependencies":{"async":"^2.0.0-rc.4","extend":"^3.0.0","fs-extra":"^0.30.0","knex":"^0.11.4","mocha":"^2.3.4","mockery":"^1.7.0","pg":"^4.5.5","sqlite3":"^3.1.4"},"dependencies":{"node-eta":"^0.9.0","node-uuid":"^1.4.7"},"gitHead":"052447c6766e50f92d3d881ab5eced81cd91fac2","_id":"better-queue@3.7.21","_shasum":"c7c44076e90fe0f4fad556b7e670ee3fbe290b62","_from":".","_npmVersion":"2.15.1","_nodeVersion":"4.4.4","_npmUser":{"name":"diam","email":"ops@diamond.io"},"dist":{"shasum":"c7c44076e90fe0f4fad556b7e670ee3fbe290b62","size":22584,"noattachment":false,"key":"/better-queue/-/better-queue-3.7.21.tgz","tarball":"http://registry.cnpm.dingdandao.com/better-queue/download/better-queue-3.7.21.tgz"},"maintainers":[{"name":"diam","email":"ops@diamond.io"},{"name":"leander","email":"me@leander.ca"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/better-queue-3.7.21.tgz_1469794906615_0.3954580051358789"},"publish_time":1469794906867,"_cnpm_publish_time":1469794906867,"_hasShrinkwrap":false},"3.7.20":{"name":"better-queue","version":"3.7.20","description":"Better Queue for NodeJS","main":"lib/queue.js","directories":{"test":"test"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"https://github.com/diamondio/better-queue.git"},"keywords":["queue","cargo","async","timeout","priority"],"author":{"name":"Diamond Inc.","email":"ops@diamond.io"},"license":"MIT","bugs":{"url":"https://github.com/diamondio/better-queue/issues"},"homepage":"https://github.com/diamondio/better-queue","devDependencies":{"async":"^2.0.0-rc.4","extend":"^3.0.0","fs-extra":"^0.30.0","knex":"^0.11.4","mocha":"^2.3.4","mockery":"^1.7.0","pg":"^4.5.5","sqlite3":"^3.1.4"},"dependencies":{"node-eta":"^0.9.0","node-uuid":"^1.4.7"},"gitHead":"d860a96d07acf9b5256803596cc4f057f1d4c8ae","_id":"better-queue@3.7.20","_shasum":"f795277ecaf31a21182de6afae573595a60a2063","_from":".","_npmVersion":"2.15.1","_nodeVersion":"4.4.4","_npmUser":{"name":"diam","email":"ops@diamond.io"},"dist":{"shasum":"f795277ecaf31a21182de6afae573595a60a2063","size":21746,"noattachment":false,"key":"/better-queue/-/better-queue-3.7.20.tgz","tarball":"http://registry.cnpm.dingdandao.com/better-queue/download/better-queue-3.7.20.tgz"},"maintainers":[{"name":"diam","email":"ops@diamond.io"},{"name":"leander","email":"me@leander.ca"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/better-queue-3.7.20.tgz_1468804490496_0.8806956021580845"},"publish_time":1468804492495,"_cnpm_publish_time":1468804492495,"_hasShrinkwrap":false},"3.7.19":{"name":"better-queue","version":"3.7.19","description":"Better Queue for NodeJS","main":"lib/queue.js","directories":{"test":"test"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"git+https://github.com/diamondio/better-queue.git"},"keywords":["queue","cargo","async","timeout","priority"],"author":{"name":"Diamond Inc.","email":"ops@diamond.io"},"license":"MIT","bugs":{"url":"https://github.com/diamondio/better-queue/issues"},"homepage":"https://github.com/diamondio/better-queue","devDependencies":{"async":"^2.0.0-rc.4","extend":"^3.0.0","fs-extra":"^0.30.0","knex":"^0.11.4","mocha":"^2.3.4","mockery":"^1.7.0","pg":"^4.5.5","sqlite3":"^3.1.4"},"dependencies":{"node-eta":"^0.9.0","node-uuid":"^1.4.7"},"gitHead":"fce189bf2dbd3702fce29f42fe16964033f766ed","_id":"better-queue@3.7.19","_shasum":"7ef4f8a38dadc4c84a3375980531d735c0bf20b7","_from":".","_npmVersion":"3.8.6","_nodeVersion":"5.11.1","_npmUser":{"name":"diam","email":"ops@diamond.io"},"dist":{"shasum":"7ef4f8a38dadc4c84a3375980531d735c0bf20b7","size":21701,"noattachment":false,"key":"/better-queue/-/better-queue-3.7.19.tgz","tarball":"http://registry.cnpm.dingdandao.com/better-queue/download/better-queue-3.7.19.tgz"},"maintainers":[{"name":"diam","email":"ops@diamond.io"},{"name":"leander","email":"me@leander.ca"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/better-queue-3.7.19.tgz_1468371330281_0.5074312575161457"},"publish_time":1468371330748,"_cnpm_publish_time":1468371330748,"_hasShrinkwrap":false},"3.7.18":{"name":"better-queue","version":"3.7.18","description":"Better Queue for NodeJS","main":"lib/queue.js","directories":{"test":"test"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"git+https://github.com/diamondio/better-queue.git"},"keywords":["queue","cargo","async","timeout","priority"],"author":{"name":"Diamond Inc.","email":"ops@diamond.io"},"license":"MIT","bugs":{"url":"https://github.com/diamondio/better-queue/issues"},"homepage":"https://github.com/diamondio/better-queue","devDependencies":{"async":"^2.0.0-rc.4","extend":"^3.0.0","knex":"^0.11.4","mocha":"^2.3.4","mockery":"^1.7.0","pg":"^4.5.5","sqlite3":"^3.1.4"},"dependencies":{"node-eta":"^0.9.0","node-uuid":"^1.4.7"},"gitHead":"8a9771ad4a59ae1da09cfb03b22d90a0fd5c5015","_id":"better-queue@3.7.18","_shasum":"0f11e8328c242a49eaa2fa1e6f2ab600fa331f85","_from":".","_npmVersion":"3.8.6","_nodeVersion":"5.11.1","_npmUser":{"name":"diam","email":"ops@diamond.io"},"dist":{"shasum":"0f11e8328c242a49eaa2fa1e6f2ab600fa331f85","size":21691,"noattachment":false,"key":"/better-queue/-/better-queue-3.7.18.tgz","tarball":"http://registry.cnpm.dingdandao.com/better-queue/download/better-queue-3.7.18.tgz"},"maintainers":[{"name":"diam","email":"ops@diamond.io"},{"name":"leander","email":"me@leander.ca"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/better-queue-3.7.18.tgz_1468370209423_0.7043290559668094"},"publish_time":1468370212537,"_cnpm_publish_time":1468370212537,"_hasShrinkwrap":false},"3.7.17":{"name":"better-queue","version":"3.7.17","description":"Better Queue for NodeJS","main":"lib/queue.js","directories":{"test":"test"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"https://github.com/diamondio/better-queue.git"},"keywords":["queue","cargo","async","timeout","priority"],"author":{"name":"Diamond Inc.","email":"ops@diamond.io"},"license":"MIT","bugs":{"url":"https://github.com/diamondio/better-queue/issues"},"homepage":"https://github.com/diamondio/better-queue","devDependencies":{"async":"^2.0.0-rc.4","extend":"^3.0.0","knex":"^0.11.4","mocha":"^2.3.4","mockery":"^1.7.0","pg":"^4.5.5","sqlite3":"^3.1.4"},"dependencies":{"node-eta":"^0.9.0","node-uuid":"^1.4.7"},"gitHead":"6020e47196ee80916111269f2f84b7fadf04768d","_id":"better-queue@3.7.17","_shasum":"5c2bdc773d38bd031787e5abcab5e3a1024ae03a","_from":".","_npmVersion":"2.15.1","_nodeVersion":"4.4.4","_npmUser":{"name":"diam","email":"ops@diamond.io"},"dist":{"shasum":"5c2bdc773d38bd031787e5abcab5e3a1024ae03a","size":21268,"noattachment":false,"key":"/better-queue/-/better-queue-3.7.17.tgz","tarball":"http://registry.cnpm.dingdandao.com/better-queue/download/better-queue-3.7.17.tgz"},"maintainers":[{"name":"diam","email":"ops@diamond.io"},{"name":"leander","email":"me@leander.ca"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/better-queue-3.7.17.tgz_1465014571104_0.0729366852901876"},"publish_time":1465014572724,"_cnpm_publish_time":1465014572724,"_hasShrinkwrap":false},"3.7.16":{"name":"better-queue","version":"3.7.16","description":"Better Queue for NodeJS","main":"lib/queue.js","directories":{"test":"test"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"git+https://github.com/diamondio/better-queue.git"},"keywords":["queue","cargo","async","timeout","priority"],"author":{"name":"Diamond Inc.","email":"ops@diamond.io"},"license":"MIT","bugs":{"url":"https://github.com/diamondio/better-queue/issues"},"homepage":"https://github.com/diamondio/better-queue","devDependencies":{"async":"^2.0.0-rc.4","extend":"^3.0.0","knex":"^0.11.4","mocha":"^2.3.4","mockery":"^1.7.0","pg":"^4.5.5","sqlite3":"^3.1.4"},"dependencies":{"node-eta":"^0.9.0","node-uuid":"^1.4.7"},"gitHead":"9755962a606d9c1489da2a712a4fdf35f7043ba9","_id":"better-queue@3.7.16","_shasum":"c566459c006a78054f53ef9354c7ab26e780a0ac","_from":".","_npmVersion":"3.8.3","_nodeVersion":"4.1.2","_npmUser":{"name":"diam","email":"ops@diamond.io"},"dist":{"shasum":"c566459c006a78054f53ef9354c7ab26e780a0ac","size":21154,"noattachment":false,"key":"/better-queue/-/better-queue-3.7.16.tgz","tarball":"http://registry.cnpm.dingdandao.com/better-queue/download/better-queue-3.7.16.tgz"},"maintainers":[{"name":"diam","email":"ops@diamond.io"},{"name":"leander","email":"me@leander.ca"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/better-queue-3.7.16.tgz_1464377039870_0.30372292222455144"},"publish_time":1464377042431,"_cnpm_publish_time":1464377042431,"_hasShrinkwrap":false},"3.7.15":{"name":"better-queue","version":"3.7.15","description":"Better Queue for NodeJS","main":"lib/queue.js","directories":{"test":"test"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"https://github.com/diamondio/better-queue.git"},"keywords":["queue","cargo","async","timeout","priority"],"author":{"name":"Diamond Inc.","email":"ops@diamond.io"},"license":"MIT","bugs":{"url":"https://github.com/diamondio/better-queue/issues"},"homepage":"https://github.com/diamondio/better-queue","devDependencies":{"async":"^2.0.0-rc.4","extend":"^3.0.0","knex":"^0.11.4","mocha":"^2.3.4","mockery":"^1.7.0","pg":"^4.5.5","sqlite3":"^3.1.4"},"dependencies":{"node-eta":"^0.9.0","node-uuid":"^1.4.7"},"gitHead":"fce797859cd383918e127cbb703a08dc95110d56","_id":"better-queue@3.7.15","_shasum":"306f05a894ad71a68084e85cba3a8559a7ccefd6","_from":".","_npmVersion":"2.15.1","_nodeVersion":"4.4.4","_npmUser":{"name":"diam","email":"ops@diamond.io"},"dist":{"shasum":"306f05a894ad71a68084e85cba3a8559a7ccefd6","size":21181,"noattachment":false,"key":"/better-queue/-/better-queue-3.7.15.tgz","tarball":"http://registry.cnpm.dingdandao.com/better-queue/download/better-queue-3.7.15.tgz"},"maintainers":[{"name":"diam","email":"ops@diamond.io"},{"name":"leander","email":"me@leander.ca"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/better-queue-3.7.15.tgz_1464376169582_0.06985909934155643"},"publish_time":1464376171979,"_cnpm_publish_time":1464376171979,"_hasShrinkwrap":false},"3.7.14":{"name":"better-queue","version":"3.7.14","description":"Better Queue for NodeJS","main":"lib/queue.js","directories":{"test":"test"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"git+https://github.com/diamondio/better-queue.git"},"keywords":["queue","cargo","async","timeout","priority"],"author":{"name":"Diamond Inc.","email":"ops@diamond.io"},"license":"MIT","bugs":{"url":"https://github.com/diamondio/better-queue/issues"},"homepage":"https://github.com/diamondio/better-queue","devDependencies":{"async":"^2.0.0-rc.4","extend":"^3.0.0","knex":"^0.11.4","mocha":"^2.3.4","mockery":"^1.7.0","pg":"^4.5.5","sqlite3":"^3.1.4"},"dependencies":{"node-eta":"^0.9.0","node-uuid":"^1.4.7"},"gitHead":"22fa6edf61af86ccfe28f17d43ba2f9b72bb5029","_id":"better-queue@3.7.14","_shasum":"0a05cfd639550f53ad04bf9569faa87c44d0967b","_from":".","_npmVersion":"3.8.3","_nodeVersion":"4.1.2","_npmUser":{"name":"diam","email":"ops@diamond.io"},"dist":{"shasum":"0a05cfd639550f53ad04bf9569faa87c44d0967b","size":21121,"noattachment":false,"key":"/better-queue/-/better-queue-3.7.14.tgz","tarball":"http://registry.cnpm.dingdandao.com/better-queue/download/better-queue-3.7.14.tgz"},"maintainers":[{"name":"diam","email":"ops@diamond.io"},{"name":"leander","email":"me@leander.ca"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/better-queue-3.7.14.tgz_1464202184081_0.20389165775850415"},"publish_time":1464202186729,"_cnpm_publish_time":1464202186729,"_hasShrinkwrap":false},"3.7.13":{"name":"better-queue","version":"3.7.13","description":"Better Queue for NodeJS","main":"lib/queue.js","directories":{"test":"test"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"https://github.com/diamondio/better-queue.git"},"keywords":["queue","cargo","async","timeout","priority"],"author":{"name":"Diamond Inc.","email":"ops@diamond.io"},"license":"MIT","bugs":{"url":"https://github.com/diamondio/better-queue/issues"},"homepage":"https://github.com/diamondio/better-queue","devDependencies":{"async":"^2.0.0-rc.4","extend":"^3.0.0","lodash":"^4.12.0","mocha":"^2.3.4","mockery":"^1.7.0","pg":"^4.5.5","sqlite3":"^3.1.1"},"dependencies":{"node-eta":"^0.9.0","node-uuid":"^1.4.7"},"gitHead":"dfd0abd1bd24bf42a92f7443f14603e24716bebc","_id":"better-queue@3.7.13","_shasum":"691ebcb8b0b1a18b4cb51da63f9b932cc51e5f5e","_from":".","_npmVersion":"2.15.1","_nodeVersion":"4.4.4","_npmUser":{"name":"diam","email":"ops@diamond.io"},"dist":{"shasum":"691ebcb8b0b1a18b4cb51da63f9b932cc51e5f5e","size":21566,"noattachment":false,"key":"/better-queue/-/better-queue-3.7.13.tgz","tarball":"http://registry.cnpm.dingdandao.com/better-queue/download/better-queue-3.7.13.tgz"},"maintainers":[{"name":"diam","email":"ops@diamond.io"},{"name":"leander","email":"me@leander.ca"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/better-queue-3.7.13.tgz_1463790064045_0.40892578568309546"},"publish_time":1463790065053,"_cnpm_publish_time":1463790065053,"_hasShrinkwrap":false},"3.7.12":{"name":"better-queue","version":"3.7.12","description":"Better Queue for NodeJS","main":"lib/queue.js","directories":{"test":"test"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"https://github.com/diamondio/better-queue.git"},"keywords":["queue","cargo","async","timeout","priority"],"author":{"name":"Diamond Inc.","email":"ops@diamond.io"},"license":"MIT","bugs":{"url":"https://github.com/diamondio/better-queue/issues"},"homepage":"https://github.com/diamondio/better-queue","devDependencies":{"async":"^2.0.0-rc.4","extend":"^3.0.0","lodash":"^4.12.0","mocha":"^2.3.4","mockery":"^1.7.0","pg":"^4.5.5","sqlite3":"^3.1.1"},"dependencies":{"node-eta":"^0.9.0","node-uuid":"^1.4.7"},"gitHead":"165f2867b9863cd427b22151563112919fd691bc","_id":"better-queue@3.7.12","_shasum":"4762a7d0c84ea4d73d0ed839f410772a4e570951","_from":".","_npmVersion":"2.15.1","_nodeVersion":"4.4.4","_npmUser":{"name":"diam","email":"ops@diamond.io"},"dist":{"shasum":"4762a7d0c84ea4d73d0ed839f410772a4e570951","size":21539,"noattachment":false,"key":"/better-queue/-/better-queue-3.7.12.tgz","tarball":"http://registry.cnpm.dingdandao.com/better-queue/download/better-queue-3.7.12.tgz"},"maintainers":[{"name":"diam","email":"ops@diamond.io"},{"name":"leander","email":"me@leander.ca"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/better-queue-3.7.12.tgz_1463789887311_0.13393144914880395"},"publish_time":1463789888426,"_cnpm_publish_time":1463789888426,"_hasShrinkwrap":false},"3.7.11":{"name":"better-queue","version":"3.7.11","description":"Better Queue for NodeJS","main":"lib/queue.js","directories":{"test":"test"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"https://github.com/diamondio/better-queue.git"},"keywords":["queue","cargo","async","timeout","priority"],"author":{"name":"Diamond Inc.","email":"ops@diamond.io"},"license":"MIT","bugs":{"url":"https://github.com/diamondio/better-queue/issues"},"homepage":"https://github.com/diamondio/better-queue","devDependencies":{"async":"^2.0.0-rc.4","extend":"^3.0.0","lodash":"^4.12.0","mocha":"^2.3.4","mockery":"^1.7.0","pg":"^4.5.5","sqlite3":"^3.1.1"},"dependencies":{"node-eta":"^0.9.0","node-uuid":"^1.4.7"},"gitHead":"38c9ec4d93d0fb124565bb39be20c518b8a40b7b","_id":"better-queue@3.7.11","_shasum":"b6cc5552e61600c7f00adf36e3100e74fe64dc7e","_from":".","_npmVersion":"2.15.1","_nodeVersion":"4.4.4","_npmUser":{"name":"diam","email":"ops@diamond.io"},"dist":{"shasum":"b6cc5552e61600c7f00adf36e3100e74fe64dc7e","size":21558,"noattachment":false,"key":"/better-queue/-/better-queue-3.7.11.tgz","tarball":"http://registry.cnpm.dingdandao.com/better-queue/download/better-queue-3.7.11.tgz"},"maintainers":[{"name":"diam","email":"ops@diamond.io"},{"name":"leander","email":"me@leander.ca"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/better-queue-3.7.11.tgz_1463789506060_0.9182999457698315"},"publish_time":1463789508455,"_cnpm_publish_time":1463789508455,"_hasShrinkwrap":false},"3.7.9":{"name":"better-queue","version":"3.7.9","description":"Better Queue for NodeJS","main":"lib/queue.js","directories":{"test":"test"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"https://github.com/diamondio/better-queue.git"},"keywords":["queue","cargo","async","timeout","priority"],"author":{"name":"Diamond Inc.","email":"ops@diamond.io"},"license":"MIT","bugs":{"url":"https://github.com/diamondio/better-queue/issues"},"homepage":"https://github.com/diamondio/better-queue","devDependencies":{"async":"^2.0.0-rc.4","extend":"^3.0.0","lodash":"^4.12.0","mocha":"^2.3.4","mockery":"^1.7.0","pg":"^4.5.5","sqlite3":"^3.1.1"},"dependencies":{"node-eta":"^0.9.0","node-uuid":"^1.4.7"},"gitHead":"721ce4199abc0d8e8674131445d5ae6137a60f25","_id":"better-queue@3.7.9","_shasum":"0c4582b9d480512ec5addf92286dbead3603ab43","_from":".","_npmVersion":"2.15.1","_nodeVersion":"4.4.4","_npmUser":{"name":"diam","email":"ops@diamond.io"},"dist":{"shasum":"0c4582b9d480512ec5addf92286dbead3603ab43","size":21517,"noattachment":false,"key":"/better-queue/-/better-queue-3.7.9.tgz","tarball":"http://registry.cnpm.dingdandao.com/better-queue/download/better-queue-3.7.9.tgz"},"maintainers":[{"name":"diam","email":"ops@diamond.io"},{"name":"leander","email":"me@leander.ca"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/better-queue-3.7.9.tgz_1463787652979_0.5448701516725123"},"publish_time":1463787655741,"_cnpm_publish_time":1463787655741,"_hasShrinkwrap":false},"3.7.8":{"name":"better-queue","version":"3.7.8","description":"Better Queue for NodeJS","main":"lib/queue.js","directories":{"test":"test"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"git+https://github.com/diamondio/better-queue.git"},"keywords":["queue","cargo","async","timeout","priority"],"author":{"name":"Diamond Inc.","email":"ops@diamond.io"},"license":"MIT","bugs":{"url":"https://github.com/diamondio/better-queue/issues"},"homepage":"https://github.com/diamondio/better-queue","devDependencies":{"async":"^2.0.0-rc.4","mocha":"^2.3.4","mockery":"^1.7.0"},"dependencies":{"extend":"^3.0.0","lodash":"^4.12.0","node-eta":"^0.9.0","node-uuid":"^1.4.7","pg":"^4.5.5","sqlite3":"^3.1.1"},"gitHead":"2c06f5428b0545054b5d77e7db6e93a458cd013e","_id":"better-queue@3.7.8","_shasum":"a9be295f5fad1c914e1dbcca1ac199af03fa1596","_from":".","_npmVersion":"3.8.3","_nodeVersion":"5.10.1","_npmUser":{"name":"diam","email":"ops@diamond.io"},"dist":{"shasum":"a9be295f5fad1c914e1dbcca1ac199af03fa1596","size":21434,"noattachment":false,"key":"/better-queue/-/better-queue-3.7.8.tgz","tarball":"http://registry.cnpm.dingdandao.com/better-queue/download/better-queue-3.7.8.tgz"},"maintainers":[{"name":"diam","email":"ops@diamond.io"},{"name":"leander","email":"me@leander.ca"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/better-queue-3.7.8.tgz_1463531552053_0.947547311661765"},"publish_time":1463531554342,"_cnpm_publish_time":1463531554342,"_hasShrinkwrap":false},"3.7.7":{"name":"better-queue","version":"3.7.7","description":"Better Queue for NodeJS","main":"lib/queue.js","directories":{"test":"test"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"git+https://github.com/diamondio/better-queue.git"},"keywords":["queue","cargo","async","timeout","priority"],"author":{"name":"Diamond Inc.","email":"ops@diamond.io"},"license":"MIT","bugs":{"url":"https://github.com/diamondio/better-queue/issues"},"homepage":"https://github.com/diamondio/better-queue","devDependencies":{"async":"^2.0.0-rc.4","mocha":"^2.3.4","mockery":"^1.7.0"},"dependencies":{"extend":"^3.0.0","lodash":"^4.12.0","node-eta":"^0.9.0","node-uuid":"^1.4.7","pg":"^4.5.5","sqlite3":"^3.1.1"},"gitHead":"4cc7ff6e324411e94314a1175ac8dd8e9aa2fdfd","_id":"better-queue@3.7.7","_shasum":"7a2c0a351bc622b08e34f0e6e608de5dbe177810","_from":".","_npmVersion":"3.8.3","_nodeVersion":"5.10.1","_npmUser":{"name":"diam","email":"ops@diamond.io"},"dist":{"shasum":"7a2c0a351bc622b08e34f0e6e608de5dbe177810","size":21420,"noattachment":false,"key":"/better-queue/-/better-queue-3.7.7.tgz","tarball":"http://registry.cnpm.dingdandao.com/better-queue/download/better-queue-3.7.7.tgz"},"maintainers":[{"name":"diam","email":"ops@diamond.io"},{"name":"leander","email":"me@leander.ca"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/better-queue-3.7.7.tgz_1463446273208_0.4453183365985751"},"publish_time":1463446275504,"_cnpm_publish_time":1463446275504,"_hasShrinkwrap":false},"3.7.6":{"name":"better-queue","version":"3.7.6","description":"Better Queue for NodeJS","main":"lib/queue.js","directories":{"test":"test"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"git+https://github.com/diamondio/better-queue.git"},"keywords":["queue","cargo","async","timeout","priority"],"author":{"name":"Diamond Inc.","email":"ops@diamond.io"},"license":"MIT","bugs":{"url":"https://github.com/diamondio/better-queue/issues"},"homepage":"https://github.com/diamondio/better-queue","devDependencies":{"async":"^2.0.0-rc.4","mocha":"^2.3.4","mockery":"^1.7.0"},"dependencies":{"extend":"^3.0.0","lodash":"^4.12.0","node-eta":"^0.9.0","node-uuid":"^1.4.7","pg":"^4.5.5","sqlite3":"^3.1.1"},"gitHead":"39ab29eb390b86482585ab4cacc71bc3d6bfc9af","_id":"better-queue@3.7.6","_shasum":"c02fb4071124f0075bab46d4a0cc6a6291210756","_from":".","_npmVersion":"3.8.3","_nodeVersion":"5.10.1","_npmUser":{"name":"diam","email":"ops@diamond.io"},"dist":{"shasum":"c02fb4071124f0075bab46d4a0cc6a6291210756","size":21415,"noattachment":false,"key":"/better-queue/-/better-queue-3.7.6.tgz","tarball":"http://registry.cnpm.dingdandao.com/better-queue/download/better-queue-3.7.6.tgz"},"maintainers":[{"name":"diam","email":"ops@diamond.io"},{"name":"leander","email":"me@leander.ca"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/better-queue-3.7.6.tgz_1463179599710_0.14187467191368341"},"publish_time":1463179601745,"_cnpm_publish_time":1463179601745,"_hasShrinkwrap":false},"3.7.5":{"name":"better-queue","version":"3.7.5","description":"Better Queue for NodeJS","main":"lib/queue.js","directories":{"test":"test"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"git+https://github.com/diamondio/better-queue.git"},"keywords":["queue","cargo","async","timeout","priority"],"author":{"name":"Diamond Inc.","email":"ops@diamond.io"},"license":"MIT","bugs":{"url":"https://github.com/diamondio/better-queue/issues"},"homepage":"https://github.com/diamondio/better-queue","devDependencies":{"async":"^2.0.0-rc.4","mocha":"^2.3.4","mockery":"^1.7.0"},"dependencies":{"extend":"^3.0.0","lodash":"^4.12.0","node-eta":"^0.9.0","node-uuid":"^1.4.7","pg":"^4.5.5","sqlite3":"^3.1.1"},"gitHead":"798f07df24f7cadc48d0b0311ec13316e66f1675","_id":"better-queue@3.7.5","_shasum":"dcbbb553eba07a8979af65fd4ca55f2703d136f1","_from":".","_npmVersion":"3.8.3","_nodeVersion":"5.10.1","_npmUser":{"name":"diam","email":"ops@diamond.io"},"dist":{"shasum":"dcbbb553eba07a8979af65fd4ca55f2703d136f1","size":20873,"noattachment":false,"key":"/better-queue/-/better-queue-3.7.5.tgz","tarball":"http://registry.cnpm.dingdandao.com/better-queue/download/better-queue-3.7.5.tgz"},"maintainers":[{"name":"diam","email":"ops@diamond.io"},{"name":"leander","email":"me@leander.ca"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/better-queue-3.7.5.tgz_1463169255367_0.2648373998235911"},"publish_time":1463169258208,"_cnpm_publish_time":1463169258208,"_hasShrinkwrap":false},"3.7.4":{"name":"better-queue","version":"3.7.4","description":"Better Queue for NodeJS","main":"lib/queue.js","directories":{"test":"test"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"git+https://github.com/diamondio/better-queue.git"},"keywords":["queue","cargo","async","timeout","priority"],"author":{"name":"Diamond Inc.","email":"ops@diamond.io"},"license":"MIT","bugs":{"url":"https://github.com/diamondio/better-queue/issues"},"homepage":"https://github.com/diamondio/better-queue","devDependencies":{"async":"^2.0.0-rc.4","mocha":"^2.3.4","mockery":"^1.7.0"},"dependencies":{"extend":"^3.0.0","lodash":"^4.12.0","node-eta":"^0.9.0","node-uuid":"^1.4.7","pg":"^4.5.5","sqlite3":"^3.1.1"},"gitHead":"0c5a9a5071c7fa4c0661ac8510dda7de3ae39fd8","_id":"better-queue@3.7.4","_shasum":"eb7dde16424a9bfa7d65f4db43432bdfe35d6b8b","_from":".","_npmVersion":"3.8.3","_nodeVersion":"5.10.1","_npmUser":{"name":"diam","email":"ops@diamond.io"},"dist":{"shasum":"eb7dde16424a9bfa7d65f4db43432bdfe35d6b8b","size":20855,"noattachment":false,"key":"/better-queue/-/better-queue-3.7.4.tgz","tarball":"http://registry.cnpm.dingdandao.com/better-queue/download/better-queue-3.7.4.tgz"},"maintainers":[{"name":"diam","email":"ops@diamond.io"},{"name":"leander","email":"me@leander.ca"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/better-queue-3.7.4.tgz_1463167422284_0.8808551968540996"},"publish_time":1463167424859,"_cnpm_publish_time":1463167424859,"_hasShrinkwrap":false},"3.7.3":{"name":"better-queue","version":"3.7.3","description":"Better Queue for NodeJS","main":"lib/queue.js","directories":{"test":"test"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"https://github.com/diamondio/better-queue.git"},"keywords":["queue","cargo","async","timeout","priority"],"author":{"name":"Diamond Inc.","email":"ops@diamond.io"},"license":"MIT","bugs":{"url":"https://github.com/diamondio/better-queue/issues"},"homepage":"https://github.com/diamondio/better-queue","devDependencies":{"mocha":"^2.3.4"},"dependencies":{"node-eta":"^0.9.0","node-uuid":"^1.4.7","sqlite3":"^3.1.1"},"gitHead":"d507699869dcafd2b18cbd8c2f572af0fb1ec526","_id":"better-queue@3.7.3","_shasum":"ac883d107e4d6b22a45b53cd8cb9dc9196913ca6","_from":".","_npmVersion":"2.14.20","_nodeVersion":"4.4.0","_npmUser":{"name":"diam","email":"ops@diamond.io"},"dist":{"shasum":"ac883d107e4d6b22a45b53cd8cb9dc9196913ca6","size":18985,"noattachment":false,"key":"/better-queue/-/better-queue-3.7.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/better-queue/download/better-queue-3.7.3.tgz"},"maintainers":[{"name":"diam","email":"ops@diamond.io"},{"name":"leander","email":"me@leander.ca"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/better-queue-3.7.3.tgz_1463012310123_0.10280921985395253"},"publish_time":1463012312818,"_cnpm_publish_time":1463012312818,"_hasShrinkwrap":false},"3.7.2":{"name":"better-queue","version":"3.7.2","description":"Better Queue for NodeJS","main":"lib/queue.js","directories":{"test":"test"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"https://github.com/diamondio/better-queue.git"},"keywords":["queue","cargo","async","timeout","priority"],"author":{"name":"Diamond Inc.","email":"ops@diamond.io"},"license":"MIT","bugs":{"url":"https://github.com/diamondio/better-queue/issues"},"homepage":"https://github.com/diamondio/better-queue","devDependencies":{"mocha":"^2.3.4"},"dependencies":{"node-eta":"^0.9.0","node-uuid":"^1.4.7","sqlite3":"^3.1.1"},"gitHead":"5ebbef26a8911c1ec093cf4398765d526980ca95","_id":"better-queue@3.7.2","_shasum":"b2011933d2170d3ddf6c417b2d813431a3b16126","_from":".","_npmVersion":"2.14.20","_nodeVersion":"4.4.0","_npmUser":{"name":"diam","email":"ops@diamond.io"},"dist":{"shasum":"b2011933d2170d3ddf6c417b2d813431a3b16126","size":18947,"noattachment":false,"key":"/better-queue/-/better-queue-3.7.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/better-queue/download/better-queue-3.7.2.tgz"},"maintainers":[{"name":"diam","email":"ops@diamond.io"},{"name":"leander","email":"me@leander.ca"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/better-queue-3.7.2.tgz_1462841340755_0.8905098426621407"},"publish_time":1462841343425,"_cnpm_publish_time":1462841343425,"_hasShrinkwrap":false},"3.7.1":{"name":"better-queue","version":"3.7.1","description":"Better Queue for NodeJS","main":"lib/queue.js","directories":{"test":"test"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"https://github.com/diamondio/better-queue.git"},"keywords":["queue","cargo","async","timeout","priority"],"author":{"name":"Diamond Inc.","email":"ops@diamond.io"},"license":"MIT","bugs":{"url":"https://github.com/diamondio/better-queue/issues"},"homepage":"https://github.com/diamondio/better-queue","devDependencies":{"mocha":"^2.3.4"},"dependencies":{"node-eta":"^0.9.0","node-uuid":"^1.4.7","sqlite3":"^3.1.1"},"gitHead":"6cde1d7fc760c2d2e523d06fb2007696dd71e1dc","_id":"better-queue@3.7.1","_shasum":"8a1618f6736a633677894edbefb1a3e0923c20cf","_from":".","_npmVersion":"2.14.20","_nodeVersion":"4.4.0","_npmUser":{"name":"diam","email":"ops@diamond.io"},"dist":{"shasum":"8a1618f6736a633677894edbefb1a3e0923c20cf","size":18873,"noattachment":false,"key":"/better-queue/-/better-queue-3.7.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/better-queue/download/better-queue-3.7.1.tgz"},"maintainers":[{"name":"diam","email":"ops@diamond.io"},{"name":"leander","email":"me@leander.ca"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/better-queue-3.7.1.tgz_1461875745933_0.1287148327101022"},"publish_time":1461875746819,"_cnpm_publish_time":1461875746819,"_hasShrinkwrap":false},"3.7.0":{"name":"better-queue","version":"3.7.0","description":"Better Queue for NodeJS","main":"lib/queue.js","directories":{"test":"test"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"https://github.com/diamondio/better-queue.git"},"keywords":["queue","cargo","async","timeout","priority"],"author":{"name":"Diamond Inc.","email":"ops@diamond.io"},"license":"MIT","bugs":{"url":"https://github.com/diamondio/better-queue/issues"},"homepage":"https://github.com/diamondio/better-queue","devDependencies":{"mocha":"^2.3.4"},"dependencies":{"node-eta":"^0.9.0","node-uuid":"^1.4.7","sqlite3":"^3.1.1"},"gitHead":"9c73ee63001726e2b9b7a58711bf61fa173dca2f","_id":"better-queue@3.7.0","_shasum":"584e75ebf575f189ecc3a37228a0a1221f3c4fa6","_from":".","_npmVersion":"2.14.20","_nodeVersion":"4.4.0","_npmUser":{"name":"diam","email":"ops@diamond.io"},"dist":{"shasum":"584e75ebf575f189ecc3a37228a0a1221f3c4fa6","size":18835,"noattachment":false,"key":"/better-queue/-/better-queue-3.7.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/better-queue/download/better-queue-3.7.0.tgz"},"maintainers":[{"name":"diam","email":"ops@diamond.io"},{"name":"leander","email":"me@leander.ca"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/better-queue-3.7.0.tgz_1461871849649_0.3001142314169556"},"publish_time":1461871852096,"_cnpm_publish_time":1461871852096,"_hasShrinkwrap":false},"3.6.2":{"name":"better-queue","version":"3.6.2","description":"Better Queue for NodeJS","main":"lib/queue.js","directories":{"test":"test"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"https://github.com/diamondio/better-queue.git"},"keywords":["queue","cargo","async","timeout","priority"],"author":{"name":"Diamond Inc.","email":"ops@diamond.io"},"license":"MIT","bugs":{"url":"https://github.com/diamondio/better-queue/issues"},"homepage":"https://github.com/diamondio/better-queue","devDependencies":{"mocha":"^2.3.4"},"dependencies":{"node-eta":"^0.9.0","node-uuid":"^1.4.7","sqlite3":"^3.1.1"},"gitHead":"bbd2c196494cff413618d5bb5f812c3003579a0e","_id":"better-queue@3.6.2","_shasum":"70b107415d4ab189d3b3ad7c21bb42356b4bf2c4","_from":".","_npmVersion":"2.14.20","_nodeVersion":"4.4.0","_npmUser":{"name":"diam","email":"ops@diamond.io"},"dist":{"shasum":"70b107415d4ab189d3b3ad7c21bb42356b4bf2c4","size":18763,"noattachment":false,"key":"/better-queue/-/better-queue-3.6.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/better-queue/download/better-queue-3.6.2.tgz"},"maintainers":[{"name":"diam","email":"ops@diamond.io"},{"name":"leander","email":"me@leander.ca"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/better-queue-3.6.2.tgz_1461867977187_0.5210568394977599"},"publish_time":1461867979680,"_cnpm_publish_time":1461867979680,"_hasShrinkwrap":false},"3.6.1":{"name":"better-queue","version":"3.6.1","description":"Better Queue for NodeJS","main":"lib/queue.js","directories":{"test":"test"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"https://github.com/diamondio/better-queue.git"},"keywords":["queue","cargo","async","timeout","priority"],"author":{"name":"Diamond Inc.","email":"ops@diamond.io"},"license":"MIT","bugs":{"url":"https://github.com/diamondio/better-queue/issues"},"homepage":"https://github.com/diamondio/better-queue","devDependencies":{"mocha":"^2.3.4"},"dependencies":{"node-eta":"^0.9.0","node-uuid":"^1.4.7","sqlite3":"^3.1.1"},"gitHead":"d48d93cea9a0901b9a01f52b1f7cfaf5bd6638ca","_id":"better-queue@3.6.1","_shasum":"6330016535d7c7834e3c1cfac98759bfa65a6801","_from":".","_npmVersion":"2.14.20","_nodeVersion":"4.4.0","_npmUser":{"name":"diam","email":"ops@diamond.io"},"dist":{"shasum":"6330016535d7c7834e3c1cfac98759bfa65a6801","size":18622,"noattachment":false,"key":"/better-queue/-/better-queue-3.6.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/better-queue/download/better-queue-3.6.1.tgz"},"maintainers":[{"name":"diam","email":"ops@diamond.io"},{"name":"leander","email":"me@leander.ca"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/better-queue-3.6.1.tgz_1461825942621_0.30250157229602337"},"publish_time":1461825943048,"_cnpm_publish_time":1461825943048,"_hasShrinkwrap":false},"3.6.0":{"name":"better-queue","version":"3.6.0","description":"Better Queue for NodeJS","main":"lib/queue.js","directories":{"test":"test"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"https://github.com/diamondio/better-queue.git"},"keywords":["queue","cargo","async","timeout","priority"],"author":{"name":"Diamond Inc.","email":"ops@diamond.io"},"license":"MIT","bugs":{"url":"https://github.com/diamondio/better-queue/issues"},"homepage":"https://github.com/diamondio/better-queue","devDependencies":{"mocha":"^2.3.4"},"dependencies":{"node-eta":"^0.9.0","node-uuid":"^1.4.7","sqlite3":"^3.1.1"},"gitHead":"769270f455765fa03793489dfe00a70eea71dff7","_id":"better-queue@3.6.0","_shasum":"f50566e4b0faa943de9e1cf6d72ea52ccca2dce1","_from":".","_npmVersion":"2.14.20","_nodeVersion":"4.4.0","_npmUser":{"name":"diam","email":"ops@diamond.io"},"dist":{"shasum":"f50566e4b0faa943de9e1cf6d72ea52ccca2dce1","size":18683,"noattachment":false,"key":"/better-queue/-/better-queue-3.6.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/better-queue/download/better-queue-3.6.0.tgz"},"maintainers":[{"name":"diam","email":"ops@diamond.io"},{"name":"leander","email":"me@leander.ca"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/better-queue-3.6.0.tgz_1461825147863_0.8925642904359847"},"publish_time":1461825150140,"_cnpm_publish_time":1461825150140,"_hasShrinkwrap":false},"3.5.2":{"name":"better-queue","version":"3.5.2","description":"Better Queue for NodeJS","main":"lib/queue.js","directories":{"test":"test"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"https://github.com/diamondio/better-queue.git"},"keywords":["queue","cargo","async","timeout","priority"],"author":{"name":"Diamond Inc.","email":"ops@diamond.io"},"license":"MIT","bugs":{"url":"https://github.com/diamondio/better-queue/issues"},"homepage":"https://github.com/diamondio/better-queue","devDependencies":{"mocha":"^2.3.4"},"dependencies":{"node-eta":"^0.9.0","node-uuid":"^1.4.7","sqlite3":"^3.1.1"},"gitHead":"919428b714fed1a86b1d042a4429bd498f6b5ca2","_id":"better-queue@3.5.2","_shasum":"edce739a4aaae25332afb09aafc0858e0d71f58a","_from":".","_npmVersion":"2.14.20","_nodeVersion":"4.4.0","_npmUser":{"name":"diam","email":"ops@diamond.io"},"dist":{"shasum":"edce739a4aaae25332afb09aafc0858e0d71f58a","size":18170,"noattachment":false,"key":"/better-queue/-/better-queue-3.5.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/better-queue/download/better-queue-3.5.2.tgz"},"maintainers":[{"name":"diam","email":"ops@diamond.io"},{"name":"leander","email":"me@leander.ca"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/better-queue-3.5.2.tgz_1461799254734_0.8076801840215921"},"publish_time":1461799255915,"_cnpm_publish_time":1461799255915,"_hasShrinkwrap":false},"3.5.1":{"name":"better-queue","version":"3.5.1","description":"Better Queue for NodeJS","main":"lib/queue.js","directories":{"test":"test"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"https://github.com/diamondio/better-queue.git"},"keywords":["queue","cargo","async","timeout","priority"],"author":{"name":"Diamond Inc.","email":"ops@diamond.io"},"license":"MIT","bugs":{"url":"https://github.com/diamondio/better-queue/issues"},"homepage":"https://github.com/diamondio/better-queue","devDependencies":{"mocha":"^2.3.4"},"dependencies":{"node-eta":"^0.9.0","node-uuid":"^1.4.7","sqlite3":"^3.1.1"},"gitHead":"a931f62ef5937d9bfdaa41c06248a9e7008d5287","_id":"better-queue@3.5.1","_shasum":"bb2981165b5e9444f54afb437d5a0440fc7b658a","_from":".","_npmVersion":"2.14.20","_nodeVersion":"4.4.0","_npmUser":{"name":"diam","email":"ops@diamond.io"},"dist":{"shasum":"bb2981165b5e9444f54afb437d5a0440fc7b658a","size":18079,"noattachment":false,"key":"/better-queue/-/better-queue-3.5.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/better-queue/download/better-queue-3.5.1.tgz"},"maintainers":[{"name":"diam","email":"ops@diamond.io"},{"name":"leander","email":"me@leander.ca"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/better-queue-3.5.1.tgz_1461371825649_0.17909362935461104"},"publish_time":1461371828105,"_cnpm_publish_time":1461371828105,"_hasShrinkwrap":false},"3.5.0":{"name":"better-queue","version":"3.5.0","description":"Better Queue for NodeJS","main":"lib/queue.js","directories":{"test":"test"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"https://github.com/diamondio/better-queue.git"},"keywords":["queue","cargo","async","timeout","priority"],"author":{"name":"Diamond Inc.","email":"ops@diamond.io"},"license":"MIT","bugs":{"url":"https://github.com/diamondio/better-queue/issues"},"homepage":"https://github.com/diamondio/better-queue","devDependencies":{"mocha":"^2.3.4"},"dependencies":{"node-eta":"^0.9.0","node-uuid":"^1.4.7","sqlite3":"^3.1.1"},"gitHead":"40f49f78c258259a953c594d8947eb9132a3dbc6","_id":"better-queue@3.5.0","_shasum":"97b44eee86109f36dfd347d7bbf88f5d593261f4","_from":".","_npmVersion":"2.14.20","_nodeVersion":"4.4.0","_npmUser":{"name":"diam","email":"ops@diamond.io"},"dist":{"shasum":"97b44eee86109f36dfd347d7bbf88f5d593261f4","size":17991,"noattachment":false,"key":"/better-queue/-/better-queue-3.5.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/better-queue/download/better-queue-3.5.0.tgz"},"maintainers":[{"name":"diam","email":"ops@diamond.io"},{"name":"leander","email":"me@leander.ca"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/better-queue-3.5.0.tgz_1460622322744_0.265760361449793"},"publish_time":1460622325955,"_cnpm_publish_time":1460622325955,"_hasShrinkwrap":false},"3.4.3":{"name":"better-queue","version":"3.4.3","description":"Better Queue for NodeJS","main":"lib/queue.js","directories":{"test":"test"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"git+https://github.com/diamondio/better-queue.git"},"keywords":["queue","cargo","async","timeout","priority"],"author":{"name":"Diamond Inc.","email":"ops@diamond.io"},"license":"MIT","bugs":{"url":"https://github.com/diamondio/better-queue/issues"},"homepage":"https://github.com/diamondio/better-queue","devDependencies":{"mocha":"^2.3.4"},"dependencies":{"node-eta":"^0.9.0","node-uuid":"^1.4.7","sqlite3":"^3.1.1"},"gitHead":"7e771c2ea3162d414a58adce39b447a600f8b042","_id":"better-queue@3.4.3","_shasum":"919beaebef766420a3cdd0ac94a52f03020b022f","_from":".","_npmVersion":"2.14.7","_nodeVersion":"4.2.3","_npmUser":{"name":"diam","email":"ops@diamond.io"},"dist":{"shasum":"919beaebef766420a3cdd0ac94a52f03020b022f","size":17602,"noattachment":false,"key":"/better-queue/-/better-queue-3.4.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/better-queue/download/better-queue-3.4.3.tgz"},"maintainers":[{"name":"diam","email":"ops@diamond.io"},{"name":"leander","email":"me@leander.ca"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/better-queue-3.4.3.tgz_1460073403528_0.3109597614966333"},"publish_time":1460073406275,"_cnpm_publish_time":1460073406275,"_hasShrinkwrap":false},"3.4.2":{"name":"better-queue","version":"3.4.2","description":"Better Queue for NodeJS","main":"lib/queue.js","directories":{"test":"test"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"https://github.com/diamondio/better-queue.git"},"keywords":["queue","cargo","async","timeout","priority"],"author":{"name":"Diamond Inc.","email":"ops@diamond.io"},"license":"MIT","bugs":{"url":"https://github.com/diamondio/better-queue/issues"},"homepage":"https://github.com/diamondio/better-queue","devDependencies":{"mocha":"^2.3.4"},"dependencies":{"node-eta":"^0.9.0","node-uuid":"^1.4.7","sqlite3":"^3.1.1"},"gitHead":"b707378851e79b181942749e25e85468853806c3","_id":"better-queue@3.4.2","_shasum":"bf7850a516015c6ceb82debd508c7170a480afab","_from":".","_npmVersion":"2.14.20","_nodeVersion":"4.4.0","_npmUser":{"name":"diam","email":"ops@diamond.io"},"dist":{"shasum":"bf7850a516015c6ceb82debd508c7170a480afab","size":17680,"noattachment":false,"key":"/better-queue/-/better-queue-3.4.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/better-queue/download/better-queue-3.4.2.tgz"},"maintainers":[{"name":"diam","email":"ops@diamond.io"},{"name":"leander","email":"me@leander.ca"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/better-queue-3.4.2.tgz_1460056821277_0.23210294754244387"},"publish_time":1460056823946,"_cnpm_publish_time":1460056823946,"_hasShrinkwrap":false},"3.4.1":{"name":"better-queue","version":"3.4.1","description":"Better Queue for NodeJS","main":"lib/queue.js","directories":{"test":"test"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"https://github.com/diamondio/better-queue.git"},"keywords":["persistent","network","async","control","flow","pipeline","timeout","priority","cargo","queue","best","better"],"author":{"name":"Diamond Inc.","email":"ops@diamond.io"},"license":"MIT","bugs":{"url":"https://github.com/diamondio/better-queue/issues"},"homepage":"https://github.com/diamondio/better-queue","devDependencies":{"mocha":"^2.3.4"},"dependencies":{"node-eta":"^0.9.0","node-uuid":"^1.4.7","sqlite3":"^3.1.1"},"gitHead":"a26e887a40d41471c2a353aec20d929d5739cbe4","_id":"better-queue@3.4.1","_shasum":"7ea8688cec11eb98a46b3e11902c641dc08801aa","_from":".","_npmVersion":"2.14.20","_nodeVersion":"4.4.0","_npmUser":{"name":"diam","email":"ops@diamond.io"},"dist":{"shasum":"7ea8688cec11eb98a46b3e11902c641dc08801aa","size":17662,"noattachment":false,"key":"/better-queue/-/better-queue-3.4.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/better-queue/download/better-queue-3.4.1.tgz"},"maintainers":[{"name":"diam","email":"ops@diamond.io"},{"name":"leander","email":"me@leander.ca"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/better-queue-3.4.1.tgz_1459933263769_0.6564963960554451"},"publish_time":1459933264160,"_cnpm_publish_time":1459933264160,"_hasShrinkwrap":false},"3.4.0":{"name":"better-queue","version":"3.4.0","description":"Better Queue for NodeJS","main":"lib/queue.js","directories":{"test":"test"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"https://github.com/diamondio/better-queue.git"},"keywords":["persistent","network","async","control","flow","pipeline","timeout","priority","cargo","queue","best","better"],"author":{"name":"Diamond Inc.","email":"ops@diamond.io"},"license":"MIT","bugs":{"url":"https://github.com/diamondio/better-queue/issues"},"homepage":"https://github.com/diamondio/better-queue","devDependencies":{"mocha":"^2.3.4"},"dependencies":{"node-eta":"^0.9.0","node-uuid":"^1.4.7","sqlite3":"^3.1.1"},"gitHead":"f4f057460de149f1b56f4f9fc9df9bef7ee98a3d","_id":"better-queue@3.4.0","_shasum":"eadc53718b78381ac2010d8e2bf29a8d5388a463","_from":".","_npmVersion":"2.14.20","_nodeVersion":"4.4.0","_npmUser":{"name":"diam","email":"ops@diamond.io"},"dist":{"shasum":"eadc53718b78381ac2010d8e2bf29a8d5388a463","size":18483,"noattachment":false,"key":"/better-queue/-/better-queue-3.4.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/better-queue/download/better-queue-3.4.0.tgz"},"maintainers":[{"name":"diam","email":"ops@diamond.io"},{"name":"leander","email":"me@leander.ca"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/better-queue-3.4.0.tgz_1459932672518_0.6997159724123776"},"publish_time":1459932673085,"_cnpm_publish_time":1459932673085,"_hasShrinkwrap":false},"3.3.0":{"name":"better-queue","version":"3.3.0","description":"Better Queue for NodeJS","main":"lib/queue.js","directories":{"test":"test"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"https://github.com/diamondio/better-queue.git"},"keywords":["persistent","network","async","control","flow","pipeline","timeout","priority","cargo","queue","best","better"],"author":{"name":"Diamond Inc.","email":"ops@diamond.io"},"license":"MIT","bugs":{"url":"https://github.com/diamondio/better-queue/issues"},"homepage":"https://github.com/diamondio/better-queue","devDependencies":{"mocha":"^2.3.4"},"dependencies":{"node-eta":"^0.9.0","node-uuid":"^1.4.7","sqlite3":"^3.1.1"},"gitHead":"37d3b7d09c0c222b51af700021945a8d8f95f23f","_id":"better-queue@3.3.0","_shasum":"c095c3c2fc097adb08e3ef4bd1383f7f12266435","_from":".","_npmVersion":"2.14.20","_nodeVersion":"4.4.0","_npmUser":{"name":"diam","email":"ops@diamond.io"},"dist":{"shasum":"c095c3c2fc097adb08e3ef4bd1383f7f12266435","size":17990,"noattachment":false,"key":"/better-queue/-/better-queue-3.3.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/better-queue/download/better-queue-3.3.0.tgz"},"maintainers":[{"name":"diam","email":"ops@diamond.io"},{"name":"leander","email":"me@leander.ca"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/better-queue-3.3.0.tgz_1459770689023_0.948841949691996"},"publish_time":1459770689550,"_cnpm_publish_time":1459770689550,"_hasShrinkwrap":false},"3.2.6":{"name":"better-queue","version":"3.2.6","description":"Better Queue for NodeJS","main":"lib/queue.js","directories":{"test":"test"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"git+https://github.com/diamondio/better-queue.git"},"keywords":["persistent","network","async","control","flow","pipeline","timeout","priority","cargo","queue","best","better"],"author":{"name":"Diamond Inc.","email":"ops@diamond.io"},"license":"MIT","bugs":{"url":"https://github.com/diamondio/better-queue/issues"},"homepage":"https://github.com/diamondio/better-queue","devDependencies":{"mocha":"^2.3.4"},"dependencies":{"node-eta":"^0.9.0","node-uuid":"^1.4.7","sqlite3":"^3.1.1"},"gitHead":"51c3a48b31f32c980cbcc1e1d9bac8dda6775869","_id":"better-queue@3.2.6","_shasum":"9465cbd1a27241d6455654894101ead41dc516a8","_from":".","_npmVersion":"2.14.7","_nodeVersion":"4.2.3","_npmUser":{"name":"diam","email":"ops@diamond.io"},"dist":{"shasum":"9465cbd1a27241d6455654894101ead41dc516a8","size":17550,"noattachment":false,"key":"/better-queue/-/better-queue-3.2.6.tgz","tarball":"http://registry.cnpm.dingdandao.com/better-queue/download/better-queue-3.2.6.tgz"},"maintainers":[{"name":"diam","email":"ops@diamond.io"},{"name":"leander","email":"me@leander.ca"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/better-queue-3.2.6.tgz_1458265494875_0.39412489510141313"},"publish_time":1458265495255,"_cnpm_publish_time":1458265495255,"_hasShrinkwrap":false},"3.2.5":{"name":"better-queue","version":"3.2.5","description":"Better Queue for NodeJS","main":"lib/queue.js","directories":{"test":"test"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"git+https://github.com/diamondio/better-queue.git"},"keywords":["persistent","network","async","control","flow","pipeline","timeout","priority","cargo","queue","best","better"],"author":{"name":"Diamond Inc.","email":"ops@diamond.io"},"license":"MIT","bugs":{"url":"https://github.com/diamondio/better-queue/issues"},"homepage":"https://github.com/diamondio/better-queue","devDependencies":{"mocha":"^2.3.4"},"dependencies":{"node-eta":"^0.9.0","node-uuid":"^1.4.7","sqlite3":"^3.1.1"},"gitHead":"3495a7b96e9a132a3322a701cb264fb5d27a1c00","_id":"better-queue@3.2.5","_shasum":"ee6b230fedca4332a661723ed07f18bb56d19968","_from":".","_npmVersion":"2.14.7","_nodeVersion":"4.2.3","_npmUser":{"name":"diam","email":"ops@diamond.io"},"dist":{"shasum":"ee6b230fedca4332a661723ed07f18bb56d19968","size":17549,"noattachment":false,"key":"/better-queue/-/better-queue-3.2.5.tgz","tarball":"http://registry.cnpm.dingdandao.com/better-queue/download/better-queue-3.2.5.tgz"},"maintainers":[{"name":"diam","email":"ops@diamond.io"},{"name":"leander","email":"me@leander.ca"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/better-queue-3.2.5.tgz_1458265404251_0.1086105196736753"},"publish_time":1458265404630,"_cnpm_publish_time":1458265404630,"_hasShrinkwrap":false},"3.2.3":{"name":"better-queue","version":"3.2.3","description":"Better Queue for NodeJS","main":"lib/queue.js","directories":{"test":"test"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"https://github.com/diamondio/better-queue.git"},"keywords":["persistent","network","async","control","flow","pipeline","timeout","priority","cargo","queue","best","better"],"author":{"name":"Diamond Inc.","email":"ops@diamond.io"},"license":"MIT","bugs":{"url":"https://github.com/diamondio/better-queue/issues"},"homepage":"https://github.com/diamondio/better-queue","devDependencies":{"mocha":"^2.3.4"},"dependencies":{"node-eta":"^0.9.0","node-uuid":"^1.4.7","sqlite3":"^3.1.1"},"gitHead":"ebf184e21305f456dffe02a62bd23404d678f059","_id":"better-queue@3.2.3","_shasum":"f6b723f35268440142c87d367020870df4c2a015","_from":".","_npmVersion":"2.14.7","_nodeVersion":"4.2.2","_npmUser":{"name":"diam","email":"ops@diamond.io"},"dist":{"shasum":"f6b723f35268440142c87d367020870df4c2a015","size":17632,"noattachment":false,"key":"/better-queue/-/better-queue-3.2.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/better-queue/download/better-queue-3.2.3.tgz"},"maintainers":[{"name":"diam","email":"ops@diamond.io"},{"name":"leander","email":"me@leander.ca"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/better-queue-3.2.3.tgz_1458255534582_0.5307669697795063"},"publish_time":1458255535342,"_cnpm_publish_time":1458255535342,"_hasShrinkwrap":false},"3.2.2":{"name":"better-queue","version":"3.2.2","description":"Better Queue for NodeJS","main":"lib/queue.js","directories":{"test":"test"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"https://github.com/diamondio/better-queue.git"},"keywords":["persistent","network","async","control","flow","pipeline","timeout","priority","cargo","queue","best","better"],"author":{"name":"Diamond Inc.","email":"ops@diamond.io"},"license":"MIT","bugs":{"url":"https://github.com/diamondio/better-queue/issues"},"homepage":"https://github.com/diamondio/better-queue","devDependencies":{"mocha":"^2.3.4"},"dependencies":{"node-eta":"^0.9.0","node-uuid":"^1.4.7","sqlite3":"^3.1.1"},"gitHead":"7f2578a19d6a00736539b914072ecef435d10842","_id":"better-queue@3.2.2","_shasum":"85ccd59e3fc651dcb8cde374e530390c3aa683dc","_from":".","_npmVersion":"2.14.7","_nodeVersion":"4.2.2","_npmUser":{"name":"diam","email":"ops@diamond.io"},"dist":{"shasum":"85ccd59e3fc651dcb8cde374e530390c3aa683dc","size":17626,"noattachment":false,"key":"/better-queue/-/better-queue-3.2.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/better-queue/download/better-queue-3.2.2.tgz"},"maintainers":[{"name":"diam","email":"ops@diamond.io"},{"name":"leander","email":"me@leander.ca"}],"_npmOperationalInternal":{"host":"packages-13-west.internal.npmjs.com","tmp":"tmp/better-queue-3.2.2.tgz_1458254461603_0.58219167846255"},"publish_time":1458254462253,"_cnpm_publish_time":1458254462253,"_hasShrinkwrap":false},"3.2.1":{"name":"better-queue","version":"3.2.1","description":"Better Queue for NodeJS","main":"lib/queue.js","directories":{"test":"test"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"https://github.com/diamondio/better-queue.git"},"keywords":["persistent","network","async","control","flow","pipeline","timeout","priority","cargo","queue","best","better"],"author":{"name":"Diamond Inc.","email":"ops@diamond.io"},"license":"MIT","bugs":{"url":"https://github.com/diamondio/better-queue/issues"},"homepage":"https://github.com/diamondio/better-queue","devDependencies":{"mocha":"^2.3.4"},"dependencies":{"node-eta":"^0.9.0","node-uuid":"^1.4.7","sqlite3":"^3.1.1"},"gitHead":"7aae3a44fb5f828f1f7934a1fa6c7e7544497abe","_id":"better-queue@3.2.1","_shasum":"af96a1e5d168f2803f3f143eea48d93d4e4b23cb","_from":".","_npmVersion":"2.14.7","_nodeVersion":"4.2.2","_npmUser":{"name":"diam","email":"ops@diamond.io"},"dist":{"shasum":"af96a1e5d168f2803f3f143eea48d93d4e4b23cb","size":17588,"noattachment":false,"key":"/better-queue/-/better-queue-3.2.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/better-queue/download/better-queue-3.2.1.tgz"},"maintainers":[{"name":"diam","email":"ops@diamond.io"},{"name":"leander","email":"me@leander.ca"}],"_npmOperationalInternal":{"host":"packages-13-west.internal.npmjs.com","tmp":"tmp/better-queue-3.2.1.tgz_1458251489043_0.019365022657439113"},"publish_time":1458251489621,"_cnpm_publish_time":1458251489621,"_hasShrinkwrap":false},"3.2.0":{"name":"better-queue","version":"3.2.0","description":"Better Queue for NodeJS","main":"lib/queue.js","directories":{"test":"test"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"https://github.com/diamondio/better-queue.git"},"keywords":["persistent","network","async","control","flow","pipeline","timeout","priority","cargo","queue","best","better"],"author":{"name":"Diamond Inc.","email":"ops@diamond.io"},"license":"MIT","bugs":{"url":"https://github.com/diamondio/better-queue/issues"},"homepage":"https://github.com/diamondio/better-queue","devDependencies":{"mocha":"^2.3.4"},"dependencies":{"node-eta":"^0.9.0","node-uuid":"^1.4.7","sqlite3":"^3.1.1"},"gitHead":"b73a40bebb4c352b0d67f5375195bd241eae1510","_id":"better-queue@3.2.0","_shasum":"3fd6683e72691abb84af7133aa83d42ae927fb3a","_from":".","_npmVersion":"2.14.7","_nodeVersion":"4.2.2","_npmUser":{"name":"diam","email":"ops@diamond.io"},"dist":{"shasum":"3fd6683e72691abb84af7133aa83d42ae927fb3a","size":17564,"noattachment":false,"key":"/better-queue/-/better-queue-3.2.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/better-queue/download/better-queue-3.2.0.tgz"},"maintainers":[{"name":"diam","email":"ops@diamond.io"},{"name":"leander","email":"me@leander.ca"}],"_npmOperationalInternal":{"host":"packages-13-west.internal.npmjs.com","tmp":"tmp/better-queue-3.2.0.tgz_1458095492154_0.9484735631849617"},"publish_time":1458095492621,"_cnpm_publish_time":1458095492621,"_hasShrinkwrap":false},"3.1.1":{"name":"better-queue","version":"3.1.1","description":"Better Queue for NodeJS","main":"lib/queue.js","directories":{"test":"test"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"https://github.com/diamondio/better-queue.git"},"keywords":["persistent","network","async","control","flow","pipeline","timeout","priority","cargo","queue","best","better"],"author":{"name":"Diamond Inc.","email":"ops@diamond.io"},"license":"MIT","bugs":{"url":"https://github.com/diamondio/better-queue/issues"},"homepage":"https://github.com/diamondio/better-queue","devDependencies":{"mocha":"^2.3.4"},"dependencies":{"node-eta":"^0.9.0","node-uuid":"^1.4.7","sqlite3":"^3.1.1"},"gitHead":"9a8a72845951c91cee49de018973e9ccd152864d","_id":"better-queue@3.1.1","_shasum":"29a64278ed037edd1022c231299e9b050d50c89a","_from":".","_npmVersion":"2.14.7","_nodeVersion":"4.2.2","_npmUser":{"name":"diam","email":"ops@diamond.io"},"dist":{"shasum":"29a64278ed037edd1022c231299e9b050d50c89a","size":16669,"noattachment":false,"key":"/better-queue/-/better-queue-3.1.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/better-queue/download/better-queue-3.1.1.tgz"},"maintainers":[{"name":"diam","email":"ops@diamond.io"},{"name":"leander","email":"me@leander.ca"}],"_npmOperationalInternal":{"host":"packages-13-west.internal.npmjs.com","tmp":"tmp/better-queue-3.1.1.tgz_1458081531621_0.6409203242510557"},"publish_time":1458081532054,"_cnpm_publish_time":1458081532054,"_hasShrinkwrap":false},"3.1.0":{"name":"better-queue","version":"3.1.0","description":"Better Queue for NodeJS","main":"lib/queue.js","directories":{"test":"test"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"https://github.com/diamondio/better-queue.git"},"keywords":["persistent","network","async","control","flow","pipeline","timeout","priority","cargo","queue","best","better"],"author":{"name":"Diamond Inc.","email":"ops@diamond.io"},"license":"MIT","bugs":{"url":"https://github.com/diamondio/better-queue/issues"},"homepage":"https://github.com/diamondio/better-queue","devDependencies":{"mocha":"^2.3.4"},"dependencies":{"node-eta":"^0.9.0","node-uuid":"^1.4.7","sqlite3":"^3.1.1"},"gitHead":"1d63bdba359a593af71687de519c9cddeae7ee58","_id":"better-queue@3.1.0","_shasum":"b10ed1fb6a7d7299402b969b76b4a8f65a8b7e5d","_from":".","_npmVersion":"2.14.7","_nodeVersion":"4.2.2","_npmUser":{"name":"diam","email":"ops@diamond.io"},"dist":{"shasum":"b10ed1fb6a7d7299402b969b76b4a8f65a8b7e5d","size":16567,"noattachment":false,"key":"/better-queue/-/better-queue-3.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/better-queue/download/better-queue-3.1.0.tgz"},"maintainers":[{"name":"diam","email":"ops@diamond.io"},{"name":"leander","email":"me@leander.ca"}],"_npmOperationalInternal":{"host":"packages-13-west.internal.npmjs.com","tmp":"tmp/better-queue-3.1.0.tgz_1457984386732_0.1284785286989063"},"publish_time":1457984387211,"_cnpm_publish_time":1457984387211,"_hasShrinkwrap":false},"3.0.1":{"name":"better-queue","version":"3.0.1","description":"Better Queue for NodeJS","main":"lib/queue.js","directories":{"test":"test"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"https://github.com/diamondio/better-queue.git"},"keywords":["persistent","network","async","control","flow","pipeline","timeout","priority","cargo","queue","best","better"],"author":{"name":"Diamond Inc.","email":"ops@diamond.io"},"license":"MIT","bugs":{"url":"https://github.com/diamondio/better-queue/issues"},"homepage":"https://github.com/diamondio/better-queue","devDependencies":{"mocha":"^2.3.4"},"dependencies":{"node-eta":"^0.9.0","node-uuid":"^1.4.7","sqlite3":"^3.1.1"},"gitHead":"298629afb51762d9c687e4dbc1950552065e5777","_id":"better-queue@3.0.1","_shasum":"85af693f7cdf968b2108e90e586d1318f9469c85","_from":".","_npmVersion":"2.14.7","_nodeVersion":"4.2.2","_npmUser":{"name":"diam","email":"ops@diamond.io"},"dist":{"shasum":"85af693f7cdf968b2108e90e586d1318f9469c85","size":16513,"noattachment":false,"key":"/better-queue/-/better-queue-3.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/better-queue/download/better-queue-3.0.1.tgz"},"maintainers":[{"name":"diam","email":"ops@diamond.io"},{"name":"leander","email":"me@leander.ca"}],"_npmOperationalInternal":{"host":"packages-13-west.internal.npmjs.com","tmp":"tmp/better-queue-3.0.1.tgz_1457776859324_0.04646556219086051"},"publish_time":1457776859855,"_cnpm_publish_time":1457776859855,"_hasShrinkwrap":false},"2.2.3":{"name":"better-queue","version":"2.2.3","description":"Better Queue for NodeJS","main":"lib/queue.js","directories":{"test":"test"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"https://github.com/diamondio/better-queue.git"},"keywords":["persistent","network","async","control","flow","pipeline","timeout","priority","cargo","queue","best","better"],"author":{"name":"Diamond Inc.","email":"ops@diamond.io"},"license":"MIT","bugs":{"url":"https://github.com/diamondio/better-queue/issues"},"homepage":"https://github.com/diamondio/better-queue","devDependencies":{"mocha":"^2.3.4"},"dependencies":{"node-eta":"^0.9.0","node-uuid":"^1.4.7","sqlite3":"^3.1.1"},"gitHead":"32386782445ceeb1f546288dcb8df401b7520628","_id":"better-queue@2.2.3","_shasum":"a7445d1a9c5b691c900c3e8519cc48ed39584b19","_from":".","_npmVersion":"2.14.7","_nodeVersion":"4.2.2","_npmUser":{"name":"diam","email":"ops@diamond.io"},"dist":{"shasum":"a7445d1a9c5b691c900c3e8519cc48ed39584b19","size":15654,"noattachment":false,"key":"/better-queue/-/better-queue-2.2.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/better-queue/download/better-queue-2.2.3.tgz"},"maintainers":[{"name":"diam","email":"ops@diamond.io"},{"name":"leander","email":"me@leander.ca"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/better-queue-2.2.3.tgz_1457732022879_0.3890769714489579"},"publish_time":1457732023283,"_cnpm_publish_time":1457732023283,"_hasShrinkwrap":false},"2.2.2":{"name":"better-queue","version":"2.2.2","description":"Better Queue for NodeJS","main":"lib/queue.js","directories":{"test":"test"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"https://github.com/diamondio/better-queue.git"},"keywords":["persistent","network","async","control","flow","pipeline","timeout","priority","cargo","queue","best","better"],"author":{"name":"Diamond Inc.","email":"ops@diamond.io"},"license":"MIT","bugs":{"url":"https://github.com/diamondio/better-queue/issues"},"homepage":"https://github.com/diamondio/better-queue","devDependencies":{"mocha":"^2.3.4"},"dependencies":{"node-eta":"^0.9.0","node-uuid":"^1.4.7","sqlite3":"^3.1.1"},"gitHead":"47d8528b75ecf350e53d82d82380d3d07bb63e0c","_id":"better-queue@2.2.2","_shasum":"e03df8fe8932f2c5239d7e84a952efa04859156b","_from":".","_npmVersion":"2.14.7","_nodeVersion":"4.2.2","_npmUser":{"name":"diam","email":"ops@diamond.io"},"dist":{"shasum":"e03df8fe8932f2c5239d7e84a952efa04859156b","size":15639,"noattachment":false,"key":"/better-queue/-/better-queue-2.2.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/better-queue/download/better-queue-2.2.2.tgz"},"maintainers":[{"name":"diam","email":"ops@diamond.io"},{"name":"leander","email":"me@leander.ca"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/better-queue-2.2.2.tgz_1457656941254_0.35495095723308623"},"publish_time":1457656941723,"_cnpm_publish_time":1457656941723,"_hasShrinkwrap":false},"2.2.1":{"name":"better-queue","version":"2.2.1","description":"Better Queue for NodeJS","main":"lib/queue.js","directories":{"test":"test"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"https://github.com/leanderlee/better-queue.git"},"keywords":["persistent","network","async","control","flow","pipeline","timeout","priority","cargo","queue","best","better"],"author":{"name":"Leander Lee","email":"me@leander.ca"},"license":"MIT","bugs":{"url":"https://github.com/leanderlee/better-queue/issues"},"homepage":"https://github.com/leanderlee/better-queue","devDependencies":{"mocha":"^2.3.4"},"dependencies":{"node-eta":"^0.9.0","node-uuid":"^1.4.7","sqlite3":"^3.1.1"},"gitHead":"b8ab20ea757d35cc0e2fe1ba529a7c07a1ae2a29","_id":"better-queue@2.2.1","_shasum":"0e058d81d6f58c5fbc6d8deb44e7628a3acc660a","_from":".","_npmVersion":"2.14.7","_nodeVersion":"4.2.2","_npmUser":{"name":"leander","email":"me@leander.ca"},"dist":{"shasum":"0e058d81d6f58c5fbc6d8deb44e7628a3acc660a","size":15633,"noattachment":false,"key":"/better-queue/-/better-queue-2.2.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/better-queue/download/better-queue-2.2.1.tgz"},"maintainers":[{"name":"diam","email":"ops@diamond.io"},{"name":"leander","email":"me@leander.ca"}],"_npmOperationalInternal":{"host":"packages-13-west.internal.npmjs.com","tmp":"tmp/better-queue-2.2.1.tgz_1457567272120_0.4558732199948281"},"publish_time":1457567272490,"_cnpm_publish_time":1457567272490,"_hasShrinkwrap":false},"2.2.0":{"name":"better-queue","version":"2.2.0","description":"Better Queue for NodeJS","main":"lib/queue.js","directories":{"test":"test"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"https://github.com/leanderlee/better-queue.git"},"keywords":["persistent","network","async","control","flow","pipeline","timeout","priority","cargo","queue","best","better"],"author":{"name":"Leander Lee","email":"me@leander.ca"},"license":"MIT","bugs":{"url":"https://github.com/leanderlee/better-queue/issues"},"homepage":"https://github.com/leanderlee/better-queue","devDependencies":{"mocha":"^2.3.4"},"dependencies":{"node-eta":"^0.9.0","node-uuid":"^1.4.7","sqlite3":"^3.1.1"},"gitHead":"b79bff62c1c3e5ef2cf4f4f3770bbba2d956f61b","_id":"better-queue@2.2.0","_shasum":"2797cd75a8fe670e920efd126569f28d37845f47","_from":".","_npmVersion":"2.14.7","_nodeVersion":"4.2.2","_npmUser":{"name":"leander","email":"me@leander.ca"},"dist":{"shasum":"2797cd75a8fe670e920efd126569f28d37845f47","size":15642,"noattachment":false,"key":"/better-queue/-/better-queue-2.2.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/better-queue/download/better-queue-2.2.0.tgz"},"maintainers":[{"name":"diam","email":"ops@diamond.io"},{"name":"leander","email":"me@leander.ca"}],"_npmOperationalInternal":{"host":"packages-13-west.internal.npmjs.com","tmp":"tmp/better-queue-2.2.0.tgz_1457551972100_0.31599487480707467"},"publish_time":1457551972713,"_cnpm_publish_time":1457551972713,"_hasShrinkwrap":false},"2.1.1":{"name":"better-queue","version":"2.1.1","description":"Better Queue for NodeJS","main":"lib/queue.js","directories":{"test":"test"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"https://github.com/leanderlee/better-queue.git"},"keywords":["persistent","network","async","control","flow","pipeline","timeout","priority","cargo","queue","best","better"],"author":{"name":"Leander Lee","email":"me@leander.ca"},"license":"MIT","bugs":{"url":"https://github.com/leanderlee/better-queue/issues"},"homepage":"https://github.com/leanderlee/better-queue","devDependencies":{"mocha":"^2.3.4"},"dependencies":{"node-eta":"^0.9.0","node-uuid":"^1.4.7","sqlite3":"^3.1.1"},"gitHead":"5d6b30a11c86fb58512cabae6596dee4bb6db60b","_id":"better-queue@2.1.1","_shasum":"6a1fdab14e3cc16714886e134f138de6b22f7fe0","_from":".","_npmVersion":"2.14.7","_nodeVersion":"4.2.2","_npmUser":{"name":"leander","email":"me@leander.ca"},"dist":{"shasum":"6a1fdab14e3cc16714886e134f138de6b22f7fe0","size":15622,"noattachment":false,"key":"/better-queue/-/better-queue-2.1.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/better-queue/download/better-queue-2.1.1.tgz"},"maintainers":[{"name":"diam","email":"ops@diamond.io"},{"name":"leander","email":"me@leander.ca"}],"_npmOperationalInternal":{"host":"packages-13-west.internal.npmjs.com","tmp":"tmp/better-queue-2.1.1.tgz_1457480014715_0.7295010979287326"},"publish_time":1457480018442,"_cnpm_publish_time":1457480018442,"_hasShrinkwrap":false},"2.1.0":{"name":"better-queue","version":"2.1.0","description":"Better Queue for NodeJS","main":"lib/queue.js","directories":{"test":"test"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"https://github.com/leanderlee/better-queue.git"},"keywords":["persistent","network","async","control","flow","pipeline","timeout","priority","cargo","queue","best","better"],"author":{"name":"Leander Lee","email":"me@leander.ca"},"license":"MIT","bugs":{"url":"https://github.com/leanderlee/better-queue/issues"},"homepage":"https://github.com/leanderlee/better-queue","devDependencies":{"mocha":"^2.3.4"},"dependencies":{"node-eta":"^0.9.0","node-uuid":"^1.4.7","sqlite3":"^3.1.1"},"gitHead":"f12dbefc40dcad669e35b39f06998c2a93bca68e","_id":"better-queue@2.1.0","_shasum":"d7f5e22c433ce5eed65231f65d0c91a48b1ddde2","_from":".","_npmVersion":"2.14.7","_nodeVersion":"4.2.2","_npmUser":{"name":"leander","email":"me@leander.ca"},"dist":{"shasum":"d7f5e22c433ce5eed65231f65d0c91a48b1ddde2","size":15582,"noattachment":false,"key":"/better-queue/-/better-queue-2.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/better-queue/download/better-queue-2.1.0.tgz"},"maintainers":[{"name":"diam","email":"ops@diamond.io"},{"name":"leander","email":"me@leander.ca"}],"_npmOperationalInternal":{"host":"packages-13-west.internal.npmjs.com","tmp":"tmp/better-queue-2.1.0.tgz_1457471307060_0.17953509115613997"},"publish_time":1457471310144,"_cnpm_publish_time":1457471310144,"_hasShrinkwrap":false},"1.0.1":{"name":"better-queue","version":"1.0.1","description":"Better Queue for NodeJS","main":"lib/queue.js","directories":{"test":"test"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"https://github.com/leanderlee/better-queue.git"},"keywords":["persistent","network","async","control","flow","pipeline","timeout","priority","cargo","queue","best","better"],"author":{"name":"Leander Lee","email":"me@leander.ca"},"license":"MIT","bugs":{"url":"https://github.com/leanderlee/better-queue/issues"},"homepage":"https://github.com/leanderlee/better-queue","devDependencies":{"mocha":"^2.3.4"},"dependencies":{"node-eta":"^0.9.0","node-uuid":"^1.4.7"},"gitHead":"de47e466e319b3673cc0f301a73bc3c73ee6fcc6","_id":"better-queue@1.0.1","_shasum":"b6f2e15cdd142b12d55b43c5930bccb93889d841","_from":".","_npmVersion":"2.14.7","_nodeVersion":"4.2.2","_npmUser":{"name":"leander","email":"me@leander.ca"},"dist":{"shasum":"b6f2e15cdd142b12d55b43c5930bccb93889d841","size":10807,"noattachment":false,"key":"/better-queue/-/better-queue-1.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/better-queue/download/better-queue-1.0.1.tgz"},"maintainers":[{"name":"diam","email":"ops@diamond.io"},{"name":"leander","email":"me@leander.ca"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/better-queue-1.0.1.tgz_1457284755039_0.8884981130249798"},"publish_time":1457284756481,"_cnpm_publish_time":1457284756481,"_hasShrinkwrap":false},"1.0.0":{"name":"better-queue","version":"1.0.0","description":"Better Queue for NodeJS","main":"lib/queue.js","directories":{"test":"test"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"https://github.com/leanderlee/better-queue.git"},"keywords":["persistent","network","async","control","flow","pipeline","timeout","priority","cargo","queue","best","better"],"author":{"name":"Leander Lee","email":"me@leander.ca"},"license":"MIT","bugs":{"url":"https://github.com/leanderlee/better-queue/issues"},"homepage":"https://github.com/leanderlee/better-queue","devDependencies":{"mocha":"^2.3.4"},"dependencies":{"async":"^1.5.2","node-eta":"^0.9.0","node-uuid":"^1.4.7"},"gitHead":"dc83450151758f5d036668f2b404afbbe46b4f31","_id":"better-queue@1.0.0","_shasum":"a62b23429901ac32fcf467992600582ef22e3019","_from":".","_npmVersion":"2.14.7","_nodeVersion":"4.2.2","_npmUser":{"name":"leander","email":"me@leander.ca"},"dist":{"shasum":"a62b23429901ac32fcf467992600582ef22e3019","size":7832,"noattachment":false,"key":"/better-queue/-/better-queue-1.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/better-queue/download/better-queue-1.0.0.tgz"},"maintainers":[{"name":"diam","email":"ops@diamond.io"},{"name":"leander","email":"me@leander.ca"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/better-queue-1.0.0.tgz_1457262121799_0.3942025506403297"},"publish_time":1457262123621,"_cnpm_publish_time":1457262123621,"_hasShrinkwrap":false}},"readme":"# Better Queue - Powerful flow control\n\n[![npm package](https://nodei.co/npm/better-queue.png?downloads=true&downloadRank=true&stars=true)](https://nodei.co/npm/better-queue/)\n\n[![Build status](https://img.shields.io/travis/diamondio/better-queue.svg?style=flat-square)](https://travis-ci.org/diamondio/better-queue)\n[![Dependency Status](https://img.shields.io/david/diamondio/better-queue.svg?style=flat-square)](https://david-dm.org/diamondio/better-queue)\n[![Known Vulnerabilities](https://snyk.io/test/npm/better-queue/badge.svg?style=flat-square)](https://snyk.io/test/npm/better-queue)\n[![Gitter](https://img.shields.io/badge/gitter-join_chat-blue.svg?style=flat-square)](https://gitter.im/leanderlee/better-queue?utm_source=badge)\n\n\n## Super simple to use\n\nBetter Queue is designed to be simple to set up but still let you do complex things.\n\n- Persistent (and extendable) storage\n- Batched processing\n- Prioritize tasks\n- Merge/filter tasks\n- Progress events (with ETA!)\n- Fine-tuned timing controls\n- Retry on fail\n- Concurrent batch processing\n- Task statistics (average completion time, failure rate and peak queue size)\n- ... and more!\n\n---\n\n#### Install (via npm)\n\n```bash\nnpm install --save better-queue\n```\n\n---\n\n#### Quick Example\n\n```js\nvar Queue = require('better-queue');\n\nvar q = new Queue(function (input, cb) {\n  \n  // Some processing here ...\n\n  cb(null, result);\n})\n\nq.push(1)\nq.push({ x: 1 })\n```\n\n## Table of contents\n\n- [Queuing](#queuing)\n- [Task Management](#task-management)\n- [Queue Management](#queue-management)\n- [Advanced](#advanced)\n- [Storage](#storage)\n- [Using with Webpack](#using-with-webpack)\n- [Full Documentation](#full-documentation)\n\n---\n\nYou will be able to combine any (and all) of these options\nfor your queue!\n\n\n## Queuing\n\nIt's very easy to push tasks into the queue.\n\n```js\nvar q = new Queue(fn);\nq.push(1);\nq.push({ x: 1, y: 2 });\nq.push(\"hello\");\n```\n\nYou can also include a callback as a second parameter to the push\nfunction, which would be called when that task is done. For example:\n\n```js\nvar q = new Queue(fn);\nq.push(1, function (err, result) {\n  // Results from the task!\n});\n```\n\nYou can also listen to events on the results of the `push` call.\n\n```js\nvar q = new Queue(fn);\nq.push(1)\n  .on('finish', function (result) {\n    // Task succeeded with {result}!\n  })\n  .on('failed', function (err) {\n    // Task failed!\n  })\n```\n\nAlternatively, you can subscribe to the queue's events.\n\n```js\nvar q = new Queue(fn);\nq.on('task_finish', function (taskId, result, stats) {\n  // taskId = 1, result: 3, stats = { elapsed: <time taken> }\n  // taskId = 2, result: 5, stats = { elapsed: <time taken> }\n})\nq.on('task_failed', function (taskId, err, stats) {\n  // Handle error, stats = { elapsed: <time taken> }\n})\nq.on('empty', function (){})\nq.on('drain', function (){})\nq.push({ id: 1, a: 1, b: 2 });\nq.push({ id: 2, a: 2, b: 3 });\n```\n\n`empty` event fires when all of the tasks have been pulled off of\nthe queue (there may still be tasks running!)\n\n`drain` event fires when there are no more tasks on the queue _and_\nwhen no more tasks are running.\n\nYou can control how many tasks process at the same time.\n\n```js\nvar q = new Queue(fn, { concurrent: 3 })\n```\n\nNow the queue will allow 3 tasks running at the same time. (By \ndefault, we handle tasks one at a time.)\n\nYou can also turn the queue into a stack by turning on `filo`.\n\n```js\nvar q = new Queue(fn, { filo: true })\n```\n\nNow items you push on will be handled first.\n\n\n\n[back to top](#table-of-contents)\n\n---\n\n## Task Management\n\n#### Task ID\n\nTasks can be given an ID to help identify and track it as it goes through\nthe queue.\n\nBy default, we look for `task.id` to see if it's a string property,\notherwise we generate a random ID for the task.\n\nYou can pass in an `id` property to options to change this behaviour.\nHere are some examples of how:\n\n```js\nvar q = new Queue(fn, {\n  id: 'id',   // Default: task's `id` property\n  id: 'name', // task's `name` property\n  id: function (task, cb) {\n    // Compute the ID\n    cb(null, 'computed_id');\n  }\n})\n```\n\nOne thing you can do with Task ID is merge tasks:\n\n```js\nvar counter = new Queue(function (task, cb) {\n  console.log(\"I have %d %ss.\", task.count, task.id);\n  cb();\n}, {\n  merge: function (oldTask, newTask, cb) {\n    oldTask.count += newTask.count;\n    cb(null, oldTask);\n  }\n})\ncounter.push({ id: 'apple', count: 2 });\ncounter.push({ id: 'apple', count: 1 });\ncounter.push({ id: 'orange', count: 1 });\ncounter.push({ id: 'orange', count: 1 });\n// Prints out:\n//   I have 3 apples.\n//   I have 2 oranges.\n```\n\nBy default, if tasks have the same ID they replace the previous task.\n\n```js\nvar counter = new Queue(function (task, cb) {\n  console.log(\"I have %d %ss.\", task.count, task.id);\n  cb();\n})\ncounter.push({ id: 'apple', count: 1 });\ncounter.push({ id: 'apple', count: 3 });\ncounter.push({ id: 'orange', count: 1 });\ncounter.push({ id: 'orange', count: 2 });\n// Prints out:\n//   I have 3 apples.\n//   I have 2 oranges.\n```\n\nYou can also use the task ID when subscribing to events from Queue.\n\n```js\nvar counter = new Queue(fn)\ncounter.on('task_finish', function (taskId, result) {\n  // taskId will be 'jim' or 'bob'\n})\ncounter.push({ id: 'jim', count: 2 });\ncounter.push({ id: 'bob', count: 1 });\n```\n\n\n#### Batch Processing\n\nYour processing function can also be modified to handle multiple\ntasks at the same time. For example:\n\n```js\nvar ages = new Queue(function (batch, cb) {\n  // Batch 1:\n  //   [ { id: 'steve', age: 21 },\n  //     { id: 'john', age: 34 },\n  //     { id: 'joe', age: 18 } ]\n  // Batch 2:\n  //   [ { id: 'mary', age: 23 } ]\n  cb();\n}, { batchSize: 3 })\nages.push({ id: 'steve', age: 21 });\nages.push({ id: 'john', age: 34 });\nages.push({ id: 'joe', age: 18 });\nages.push({ id: 'mary', age: 23 });\n```\n\nNote how the queue will only handle at most 3 items at a time.\n\nBelow is another example of a batched call with numbers.\n\n```js\nvar ages = new Queue(function (batch, cb) {\n  // batch = [1,2,3]\n  cb();\n}, { batchSize: 3 })\nages.push(1);\nages.push(2);\nages.push(3);\n```\n\n\n#### Filtering, Validation and Priority\n\nYou can also format (and filter) the input that arrives from a push\nbefore it gets processed by the queue by passing in a `filter` \nfunction.\n\n```js\nvar greeter = new Queue(function (name, cb) {\n  console.log(\"Hello, %s!\", name)\n  cb();\n}, {\n  filter: function (input, cb) {\n    if (input === 'Bob') {\n      return cb('not_allowed');\n    }\n    return cb(null, input.toUpperCase())\n  }\n});\ngreeter.push('anna'); // Prints 'Hello, ANNA!'\n```\n\nThis can be particularly useful if your queue needs to do some pre-processing,\ninput validation, database lookup, etc. before you load it onto the queue.\n\nYou can also define a priority function to control which tasks get\nprocessed first.\n\n```js\nvar greeter = new Queue(function (name, cb) {\n  console.log(\"Greetings, %s.\", name);\n  cb();\n}, {\n  priority: function (name, cb) {\n    if (name === \"Steve\") return cb(null, 10);\n    if (name === \"Mary\") return cb(null, 5);\n    if (name === \"Joe\") return cb(null, 5);\n    cb(null, 1);\n  }\n})\ngreeter.push(\"Steve\");\ngreeter.push(\"John\");\ngreeter.push(\"Joe\");\ngreeter.push(\"Mary\");\n\n// Prints out:\n//   Greetings, Steve.\n//   Greetings, Joe.\n//   Greetings, Mary.\n//   Greetings, John.\n```\n\nIf `filo` is set to `true` in the example above, then Joe and Mary \nwould swap order.\n\n\n[back to top](#table-of-contents)\n\n---\n\n## Queue Management\n\n#### Retry\n\nYou can set tasks to retry `maxRetries` times if they fail. By default,\ntasks will fail (and will not retry.) Optionally, you can set a `retryDelay`\nto wait a little while before retrying.\n\n```js\nvar q = new Queue(fn, { maxRetries: 10, retryDelay: 1000 })\n```\n\n\n#### Timing\n\nYou can configure the queue to have a `maxTimeout`.\n\n```js\nvar q = new Queue(function (name, cb) {\n  someLongTask(function () {\n    cb();\n  })\n}, { maxTimeout: 2000 })\n```\n\nAfter 2 seconds, the process will throw an error instead of waiting for the\ncallback to finish.\n\nYou can also delay the queue before it starts its processing. This is the \nbehaviour of a timed cargo.\n\n```js\nvar q = new Queue(function (batch, cb) {\n  // Batch [1,2] will process after 2s.\n  cb();\n}, { batchSize: 5, batchDelay: 2000 })\nq.push(1);\nsetTimeout(function () {\n  q.push(2);\n}, 1000)\n```\n\nYou can also set `afterProcessDelay`, which will delay processing between tasks.\n\n```js\nvar q = new Queue(function (task, cb) {\n  cb(); // Will wait 1 second before taking the next task\n}, { afterProcessDelay: 1000 })\nq.push(1);\nq.push(2);\n```\n\nInstead of just the `batchDelay`, you can add a `batchDelayTimeout`, which is for firing off a batch if it hasn't had any new tasks pushed to the queue in the `batchDelayTimeout` time (in milliseconds.)\n\n```js\nvar q = new Queue(fn, {\n  batchSize: 50,\n  batchDelay: 5000,\n  batchDelayTimeout: 1000\n})\nq.push(1);\nq.push(2);\n```\n\nIn the example above, the queue will wait for 50 items to fill up in 5s or process the queue if no new tasks were added in 1s.\n\n#### Precondition\n\nYou can define a function called `precondition` that checks that it's ok to process\nthe next batch. If the preconditions fail, it will keep calling this function until\nit passes again.\n\n```js\nvar q = new Queue(function (batch, cb) {\n\n  // Do something that requires internet\n\n}, {\n  precondition: function (cb) {\n    isOnline(function (err, ok) {\n      if (ok) {\n        cb(null, true);\n      } else {\n        cb(null, false);\n      }\n    })\n  },\n  preconditionRetryTimeout: 10*1000 // If we go offline, retry every 10s\n})\n```\n\n\n#### Pause/Resume\n\nThere are options to control processes while they are running.\n\nYou can return an object in your processing function with the functions\n`cancel`, `pause` and `resume`. This will allow operations to pause, resume \nor cancel while it's running.\n\n```js\nvar uploader = new Queue(function (file, cb) {\n  \n  var worker = someLongProcess(file);\n\n  return {\n    cancel: function () {\n      // Cancel the file upload\n    },\n    pause: function () {\n      // Pause the file upload\n    },\n    resume: function () {\n      // Resume the file upload\n    }\n  }\n})\nuploader.push('/path/to/file.pdf');\nuploader.pause();\nuploader.resume();\n```\n\n#### Cancel/Abort\n\nYou can also set `cancelIfRunning` to `true`. This will cancel a running task if\na task with the same ID is pushed onto the queue.\n\n```js\nvar uploader = new Queue(function (file, cb) {\n  var request = someLongProcess(file);\n  return {\n    cancel: function () {\n      request.cancel();\n    }\n  }\n}, {\n  id: 'path',\n  cancelIfRunning: true\n})\nuploader.push({ path: '/path/to/file.pdf' });\n// ... Some time later\nuploader.push({ path: '/path/to/file.pdf' });\n```\n\nIn the example above, the first upload process is cancelled and the task is requeued.\n\nYou can also call `.cancel(taskId)` to cancel and unqueue the task.\n\n```js\nuploader.cancel('/path/to/file.pdf');\n```\n\nNote that if you enable this option in batch mode, it will cancel the entire batch!\n\n\n[back to top](#table-of-contents)\n\n---\n\n## Advanced\n\n#### Updating Task Status\n\nThe process function will be run in a context with `progress`,\n`finishBatch` and `failedBatch` functions.\n\nThe example below illustrates how you can use these:\n\n```js\nvar uploader = new Queue(function (file, cb) {\n  this.failedBatch('some_error')\n  this.finishBatch(result)\n  this.progressBatch(bytesUploaded, totalBytes, \"uploading\")\n});\nuploader.on('task_finish', function (taskId, result) {\n  // Handle finished result\n})\nuploader.on('task_failed', function (taskId, errorMessage) {\n  // Handle error\n})\nuploader.on('task_progress', function (taskId, completed, total) {\n  // Handle task progress\n})\n\nuploader.push('/some/file.jpg')\n  .on('finish', function (result) {\n    // Handle upload result\n  })\n  .on('failed', function (err) {\n    // Handle error\n  })\n  .on('progress', function (progress) {\n    // progress.eta - human readable string estimating time remaining\n    // progress.pct - % complete (out of 100)\n    // progress.complete - # completed so far\n    // progress.total - # for completion\n    // progress.message - status message\n  })\n```\n\n#### Update Status in Batch mode (batchSize > 1)\n\nYou can also complete individual tasks in a batch by using `failedTask` and\n`finishTask` functions.\n\n```js\nvar uploader = new Queue(function (files, cb) {\n  this.failedTask(0, 'some_error')         // files[0] has failed with 'some_error'\n  this.finishTask(1, result)               // files[1] has finished with {result}\n  this.progressTask(2, 30, 100, \"copying\") // files[2] is 30% done, currently copying\n}, { batchSize: 3 });\nuploader.push('/some/file1.jpg')\nuploader.push('/some/file2.jpg')\nuploader.push('/some/file3.jpg')\n```\n\nNote that if you use *-Task and *-Batch functions together, the batch functions will only\napply to the tasks that have not yet finished/failed.\n\n\n#### Queue Statistics\n\nYou can inspect the queue at any given time to see information about how many items are\nqueued, average queue time in milliseconds, success rate and total item processed.\n\n```js\nvar q = new Queue(fn);\nvar stats = q.getStats();\n\n// stats.total = Total tasks processed\n// stats.average = Average process time in milliseconds\n// stats.successRate = % success (between 0 and 1)\n// stats.peak = Most tasks queued at any given point in time\n```\n\n\n[back to top](#table-of-contents)\n\n---\n\n\n## Storage\n\n\n#### Using a store\n\nFor your convenience, we have added compatibility for a few storage options.\n\nBy default, we are using an in-memory store that doesn't persist. You can change\nto one of our other built in stores by passing in the `store` option.\n\n#### Built-in store\n\nCurrently, we support the following stores:\n\n - memory\n - sql (SQLite, PostgreSQL)\n\n#### SQLite store (`npm install sqlite3`)\n```\nvar q = new Queue(fn, {\n  store: {\n    type: 'sql',\n    dialect: 'sqlite',\n    path: '/path/to/sqlite/file'\n  }\n});\n```\n\nNote that this requires `better-queue-sql` or `better-queue-sqlite`.\n\n#### PostgreSQL store (`npm install pg`)\n```\nvar q = new Queue(fn, {\n  store: {\n    type: 'sql',\n    dialect: 'postgres',\n    host: 'localhost',\n    port: 5432,\n    username: 'username',\n    password: 'password',\n    dbname: 'template1',\n    tableName: 'tasks'\n  }\n});\n```\n\nPlease help us add support for more stores; contributions are welcome!\n\n#### Custom Store\n\nWriting your own store is very easy; you just need to implement a few functions\nthen call `queue.use(store)` on your store.\n\n```js\nvar q = new Queue(fn, { store: myStore });\n```\n\nor\n\n```js\nq.use(myStore);\n```\n\nYour store needs the following functions:\n```js\nq.use({\n  connect: function (cb) {\n    // Connect to your db\n  },\n  getTask: function (taskId, cb) {\n    // Retrieves a task\n  },\n  putTask: function (taskId, task, priority, cb) {\n    // Save task with given priority\n  },\n  takeFirstN: function (n, cb) {\n    // Removes the first N items (sorted by priority and age)\n  },\n  takeLastN: function (n, cb) {\n    // Removes the last N items (sorted by priority and recency)\n  }\n})\n```\n\n[back to top](#table-of-contents)\n\n---\n## Using with Webpack\n\nBetter Queue can be used in the browser using the default in-memory store. However you have to create and pass the store to its constructor. \n\n\n```js\nimport Queue = require('better-queue')\nimport MemoryStore = require('better-queue-memory')\n\nvar q = new Queue(function (input, cb) {\n  \n  // Some processing here ...\n\n  cb(null, result);\n},\n{\n    store: new MemoryStore(),\n  }\n)\n```\n\n### TypeScript Support\n\nBetter Queue can be used in TypeScript projects by installing type definitions from the [Definitely Typed](https://github.com/DefinitelyTyped/DefinitelyTyped) repository:\n\n```bash\nnpm install --save @types/better-queue\n```\n\nAfterwards, you can simply import the library:\n\n```ts\nimport Queue = require('better-queue')\n\nconst q: Queue = new Queue(() => {});\n```\n\n\n[back to top](#table-of-contents)\n\n---\n\n## Full Documentation\n\n#### new Queue(process, options)\n\nThe first argument can be either the process function or the `options` object.\n\nA process function is required, all other options are optional.\n\n- `process` - function to process tasks. Will be run with either one single task (if `batchSize` is 1) or as an array of at most `batchSize` items. The second argument will be a callback `cb(error, result)` that must be called regardless of success or failure.\n\n---\n\n- `filter` - function to filter input. Will be run with `input` whatever was passed to `q.push()`. If you define this function, then you will be expected to call the callback `cb(error, task)`. If an error is sent in the callback then the input is rejected.\n- `merge` - function to merge tasks with the same task ID. Will be run with `oldTask`, `newTask` and a callback `cb(error, mergedTask)`. If you define this function then the callback is expected to be called.\n- `priority` - function to determine the priority of a task. Takes in a task and returns callback `cb(error, priority)`.\n- `precondition` - function that runs a check before processing to ensure it can process the next batch. Takes a callback `cb(error, passOrFail)`.\n\n---\n\n- `id` - The property to use as the task ID. This can be a string or a function (for more complicated IDs). The function `(task, cb)` and must call the callback with `cb(error, taskId)`.\n- `cancelIfRunning` - If true, when a task with the same ID is running, its worker will be cancelled. Defaults to `false`.\n- `autoResume` - If true, tasks in the store will automatically start processing once it connects to the store. Defaults to `true`.\n- `failTaskOnProcessException` - If true, when the process function throws an error the batch fails. Defaults to `true`.\n- `filo` - If true, tasks will be completed in a first in, last out order. Defaults to `false`.\n- `batchSize` - The number of tasks (at most) that can be processed at once. Defaults to `1`.\n- `batchDelay` - Number of milliseconds to delay before starting to popping items off the queue. Defaults to `0`.\n- `batchDelayTimeout` - Number of milliseconds to wait for a new task to arrive before firing off the batch. Defaults to `Infinity`.\n- `concurrent` - Number of workers that can be running at any given time. Defaults to `1`.\n- `maxTimeout` - Number of milliseconds before a task is considered timed out. Defaults to `Infinity`.\n- `afterProcessDelay` - Number of milliseconds to delay before processing the next batch of items. Defaults to `1`.\n- `maxRetries` - Maximum number of attempts to retry on a failed task. Defaults to `0`.\n- `retryDelay` - Number of milliseconds before retrying. Defaults to `0`.\n- `storeMaxRetries` - Maximum number of attempts before giving up on the store. Defaults to `Infinity`.\n- `storeRetryTimeout` - Number of milliseconds to delay before trying to connect to the store again. Defaults to `1000`.\n- `preconditionRetryTimeout` - Number of milliseconds to delay before checking the precondition function again. Defaults to `1000`.\n- `store` - Represents the options for the initial store. Can be an object containing `{ type: storeType, ... options ... }`, or the store instance itself.\n\n#### Methods on Queue\n\n- `push(task, cb)` - Push a task onto the queue, with an optional callback when it completes. Returns a `Ticket` object.\n- `pause()` - Pauses the queue: tries to pause running tasks and prevents tasks from getting processed until resumed.\n- `resume()` - Resumes the queue and its runnign tasks.\n- `destroy(cb)` - Destroys the queue: closes the store, tries to clean up.\n- `use(store)` - Sets the queue to read from and write to the given store.\n- `getStats()` - Gets the aggregate stats for the queue. Returns an object with properties `successRate`, `peak`, `total` and `average`, representing the success rate on tasks, peak number of items queued, total number of items processed and average processing time in milliseconds, respectively.\n- `resetStats()` - Resets all of the aggregate stats.\n\n#### Events on Queue\n\n- `task_queued` - When a task is queued\n- `task_accepted` - When a task is accepted\n- `task_started` - When a task begins processing\n- `task_finish` - When a task is completed\n- `task_failed` - When a task fails\n- `task_progress` - When a task progress changes\n- `batch_finish` - When a batch of tasks (or worker) completes\n- `batch_failed` - When a batch of tasks (or worker) fails\n- `batch_progress` - When a batch of tasks (or worker) updates its progress\n\n#### Events on Ticket\n\n- `accepted` - When the corresponding task is accepted (has passed filter)\n- `queued` - When the corresponding task is queued (and saved into the store)\n- `started` - When the corresponding task is started\n- `progress` - When the corresponding task progress changes\n- `finish` - When the corresponding task completes\n- `failed` - When the corresponding task fails\n\n","_attachments":{},"homepage":"https://github.com/diamondio/better-queue","bugs":{"url":"https://github.com/diamondio/better-queue/issues"},"license":"MIT"}