{"_id":"@conpago/bullmq","_rev":"6-f445b497c0ee4b90d056f46246740661","name":"@conpago/bullmq","dist-tags":{"latest":"1.81.5"},"versions":{"1.81.5":{"name":"@conpago/bullmq","version":"1.81.5","keywords":["bull","bullmq","queues","jobs","redis"],"author":{"name":"Taskforce.sh Inc."},"license":"MIT","_id":"@conpago/bullmq@1.81.5","maintainers":[{"name":"etonello_conpago","email":"emanuele@conpago.com.au"}],"homepage":"https://github.com/taskforcesh/bullmq#readme","bugs":{"url":"https://github.com/taskforcesh/bullmq/issues"},"nyc":{"all":true,"exclude":["bullmq-tests/test_*.ts"],"extends":"@istanbuljs/nyc-config-typescript","include":["src/**/*.ts"],"check-coverage":true},"dist":{"shasum":"bf3a39d533ec839ad79a7fad810f02d6243370d9","tarball":"https://registry.npmjs.org/@conpago/bullmq/-/bullmq-1.81.5.tgz","fileCount":425,"integrity":"sha512-nubdqKCt7aQNQU5+VhWCIQMv3fJ65C/5loEAaNVTrujQrlqCSPdB/IyppiDoOxCoi392cqhU5IElj0f3RNlmuA==","signatures":[{"sig":"MEUCIQCh8kLxjKuNxyIvBa8/hqeIJ1DGo21oXEuyX6E9pgMofwIgCfT+01Qar018gtibs9UpLsOXZxUU4sSPAPp/lj+jBx8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":975149,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJifGxsACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqyVA//QIXJaUMiqlebs+zw8Pqu0NwC5ClYuucsOGx19EIWCv7iui1P\r\nT3vg1hBxHeYnCMhV3J9xWRe4ZK9X3F5J8wmTtbsFRuXTZdSCDKioT6764JG9\r\niDc+FEMqvxEbYaHa+5lZa/Ms250N0iJov4cP6zCsu2R0A9ivY2c20b3GrmHf\r\nJhigaPxGA8Ndji2nSj4Waque/+FjFK2h67MENnPyAg4nZb4tqsExqkQIhe7X\r\nQ7Iut34wUhCjmLCpuaLefr2AfefQhanxIP1ppWyywwWR0GWSe2s9gkri7iGO\r\nDwJqEdhKn7rrsE/vUm40/oyndJQBVx0Aa0Uh5n7O3uMHv2FmYFhyAooAbGjm\r\nHKoXA08gc73IIHO3hfOPoEFvqFJbvx5+C00rzP3rK4Xncg8wYuOBTlARY5AK\r\nynzs8vqP04+QlkBPDiRQR2ksQdb7vKdoMl40dmNf9F1q0FDIouWuqODgsR54\r\nxhDTurA//OYrcc3GhMWe81dFQ1XRFxfbnTmiiPDidI2Y3n2v0Hs7a7FsIeiy\r\n3JMsH5sQ0jVMs6ehXAl+xyddrzs0bYyJchi8EuGgCatiovtTrjpg5zB7FLyH\r\nO2oMJC+pNDaJNev+aAer0qqzLW4Aow7XXv1C/lIV/uq6bSoQE+LDdNNdwfuF\r\nxZafxtvs7FFMUoMcWkbxSu9Bkexw/MR6wEQ=\r\n=y0ZE\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cjs/index.js","husky":{"hooks":{"commit-msg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm-run-all pretty:quick lint:staged"}},"types":"dist/esm/index.d.ts","config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"module":"dist/esm/index.js","source":"src/index.ts","gitHead":"6058264a2a82c572840fb2e5c504916aac1b3963","release":{"plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["@semantic-release/changelog",{"changelogFile":"docs/gitbook/changelog.md"}],["@semantic-release/npm",{"npmPublish":true}],"@semantic-release/github",["@semantic-release/git",{"assets":["package.json","yarn.lock","docs/gitbook/changelog.md","docs/gitbook/api/**"],"message":"chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]]},"scripts":{"cm":"git cz","tsc":"tsc","docs":"typedoc --excludeExternals --excludeProtected --excludePrivate --readme none src/index.ts","lint":"eslint . --ignore-path ./.eslintignore","test":"ts-mocha -p tsconfig-cjs.json --config ./.mocharc.js","build":"npm-run-all tsc:all copy:lua copy:includes:lua clean:temp:files","dc:up":"docker-compose -f docker-compose.yml up -d","dc:down":"docker-compose -f docker-compose.yml down","dry-run":"npm publish --dry-run","prepare":"yarn build","tsc:all":"tsc && tsc -p tsconfig-cjs.json","copy:lua":"copyfiles -f ./src/commands/*.lua ./dist/cjs/commands && copyfiles -f ./src/commands/*.lua ./dist/esm/commands","coverage":"nyc --reporter=text npm run test","prettier":"prettier --config package.json src/**/*.ts","coveralls":"nyc report --reporter=text-lcov | coveralls","eslint:fix":"eslint . --ignore-path ./.eslintignore --fix","test:watch":"ts-mocha -p tsconfig-cjs.json --paths 'tests/test_*.ts' -w --watch-extensions ts","lint:staged":"lint-staged","pretty:quick":"pretty-quick --ignore-path ./.eslintignore --staged","clean:temp:files":"rimraf dist/cjs/bullmq.d.ts dist/esm/bullmq.d.ts dist/tsdoc-metadata.json","semantic-release":"semantic-release","copy:includes:lua":"copyfiles -f ./src/commands/includes/*.lua ./dist/cjs/commands/includes && copyfiles -f ./src/commands/includes/*.lua ./dist/esm/commands/includes","semantic-release-prepare":"ts-node tools/semantic-release-prepare"},"_npmUser":{"name":"etonello_conpago","email":"emanuele@conpago.com.au"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git+https://github.com/taskforcesh/bullmq.git","type":"git"},"_npmVersion":"8.3.1","description":"Queue for messages and jobs based on Redis","directories":{},"jsnext:main":"dist/esm/index.js","lint-staged":{"*.{js,ts}":"yarn eslint:fix"},"_nodeVersion":"16.14.0","dependencies":{"glob":"^7.2.0","uuid":"^8.3.2","rrule":"^2.6.9","tslib":"^1.14.1","lodash":"^4.17.21","semver":"^6.3.0","ioredis":"^4.28.5","get-port":"^5.1.1","msgpackr":"^1.4.6","cron-parser":"^4.4.0"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^14.1.1","chai":"^4.3.4","husky":"^3.1.0","mocha":"^6.2.3","sinon":"^7.5.0","eslint":"7.0.0","moment":"^2.29.1","rimraf":"^3.0.2","ts-node":"^8.10.2","typedoc":"^0.22.15","istanbul":"^0.4.5","prettier":"^2.4.1","ts-mocha":"^8.0.0","copyfiles":"^2.4.1","coveralls":"^3.1.1","commitizen":"^4.2.4","typescript":"^4.6.3","@types/chai":"^4.2.22","@types/glob":"^7.2.0","@types/node":"^12.20.25","@types/uuid":"^3.4.10","lint-staged":"10.5.4","npm-run-all":"^4.1.5","@types/mocha":"^5.2.7","@types/sinon":"^7.5.2","pretty-quick":"^3.1.1","test-console":"^2.0.0","@types/lodash":"^4.14.173","@types/semver":"^6.2.3","@types/ioredis":"^4.28.2","@types/msgpack":"^0.0.31","@commitlint/cli":"^8.3.5","chai-as-promised":"^7.1.1","semantic-release":"^18.0.1","eslint-plugin-mocha":"^8.2.0","eslint-plugin-tsdoc":"^0.2.14","mocha-lcov-reporter":"^1.3.0","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^8.0.3","eslint-plugin-promise":"4.2.1","eslint-config-prettier":"6.7.0","eslint-plugin-prettier":"3.1.2","@types/chai-as-promised":"^7.1.4","@semantic-release/github":"^8.0.2","@typescript-eslint/parser":"4.5.0","@semantic-release/changelog":"^6.0.0","@commitlint/config-conventional":"^8.3.4","@typescript-eslint/eslint-plugin":"4.5.0","@istanbuljs/nyc-config-typescript":"^0.1.3","@semantic-release/commit-analyzer":"^9.0.2","@semantic-release/release-notes-generator":"^10.0.3"},"_npmOperationalInternal":{"tmp":"tmp/bullmq_1.81.5_1652321387887_0.24780467628533853","host":"s3://npm-registry-packages"}}},"time":{"created":"2022-05-12T02:09:47.809Z","modified":"2025-06-27T05:12:53.681Z","1.81.5":"2022-05-12T02:09:48.107Z"},"bugs":{"url":"https://github.com/taskforcesh/bullmq/issues"},"author":{"name":"Taskforce.sh Inc."},"license":"MIT","homepage":"https://github.com/taskforcesh/bullmq#readme","keywords":["bull","bullmq","queues","jobs","redis"],"repository":{"url":"git+https://github.com/taskforcesh/bullmq.git","type":"git"},"description":"Queue for messages and jobs based on Redis","maintainers":[{"email":"alex@conpago.com.au","name":"alex_conpago"},{"email":"emanuele@conpago.com.au","name":"etonello_conpago"},{"email":"vladimir@conpago.com.au","name":"0xvlado"},{"email":"nihar@conpago.com.au","name":"nihar27_conpago"},{"email":"bishwo@conpago.com.au","name":"bishwoconpago"}],"readme":"<div align=\"center\">\n  <br/>\n  <img src=\"https://user-images.githubusercontent.com/95200/143832033-32e868df-f3b0-4251-97fb-c64809a43d36.png\" width=\"800\" />\n  <br/>\n  <br/>\n  <p>\n    The fastest, most reliable, Redis-based distributed queue for Node. <br/>\n    Carefully written for rock solid stability and atomicity.\n  </p>\n  Read the <a href=\"https://docs.bullmq.io\">documentation</a>\n  <br/>\n  <br/>\n  <p>\n    <a href=\"https://openbase.com/js/bullmq?utm_source=embedded&utm_medium=badge&utm_campaign=rate-badge\">\n      <img src=\"https://badges.openbase.com/js/rating/bullmq.svg\"/>\n    </a>\n    <a href=\"https://gitter.im/OptimalBits/bull\">\n      <img src=\"https://badges.gitter.im/Join%20Chat.svg\"/>\n    </a>    \n    <a href=\"https://badge.fury.io/js/bullmq\">\n      <img src=\"https://badge.fury.io/js/bullmq.svg\"/>\n    </a>\n    <a href=\"https://coveralls.io/github/taskforcesh/bullmq?branch=master\">\n      <img src=\"https://coveralls.io/repos/github/taskforcesh/bullmq/badge.svg?branch=master\"/>\n    </a>\n    <a href=\"https://github.com/semantic-release/semantic-release\">\n      <img src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\"/>\n    </a>\n  </p>\n  <p>\n    <em>Follow <a href=\"https://twitter.com/manast\">@manast</a> for *important* Bull/BullMQ news and updates!</em>\n  </p>\n</div>\n\n# 🛠 Tutorials\n\nYou can find tutorials and news in this blog: https://blog.taskforce.sh/\n\n# Official FrontEnd\n\n[<img src=\"http://taskforce.sh/assets/logo_square.png\" width=\"200\" alt=\"Taskforce.sh, Inc\" style=\"padding: 200px\"/>](https://taskforce.sh)\n\nSupercharge your queues with a professional front end:\n\n- Get a complete overview of all your queues.\n- Inspect jobs, search, retry, or promote delayed jobs.\n- Metrics and statistics.\n- and many more features.\n\nSign up at [Taskforce.sh](https://taskforce.sh)\n\n# Used by\n\nSome notable organizations using BullMQ:\n\n<table cellspacing=\"0\" cellpadding=\"0\">\n  <tr>\n    <td valign=\"center\">\n       <a href=\"https://github.com/microsoft/lage\">\n        <img\n          src=\"https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LUuDmt_xXMfG66Rn1GA%2Fuploads%2FUvwInTAmk7hxAViDwJzU%2Fclipart1565701.png?alt=media\"\n          width=\"150\"\n          alt=\"Microsoft\"\n        />\n       </a>\n    </td>\n    <td valign=\"center\">\n       <a href=\"https://github.com/vendure-ecommerce/vendure\">\n        <img\n          src=\"https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LUuDmt_xXMfG66Rn1GA%2Fuploads%2FvT30DUqsi61gL8edn3R2%2Fwordmark-logo.png?alt=media\"\n          width=\"150\"\n          alt=\"Vendure\"\n        />\n       </a>\n    </td>\n        <td valign=\"center\">\n       <a href=\"https://github.com/datawrapper/datawrapper\">\n        <img\n          src=\"https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LUuDmt_xXMfG66Rn1GA%2Fuploads%2FCJ5XmotpBBsuSgD8CilC%2Fdatawrapper-logo.png?alt=media\"\n          width=\"150\"\n          alt=\"Datawrapper\"\n        />\n       </a>\n    </td>\n        <td valign=\"center\">\n       <a href=\"https://github.com/teamcurri\">\n        <img\n          src=\"https://user-images.githubusercontent.com/659829/161662129-ae645bc4-c1e9-48ff-997e-4cee281a964a.png\"\n          width=\"150\"\n          alt=\"Curri\"\n        />\n       </a>\n    </td>\n  <tr>\n</table>\n\n# The gist\n\nInstall:\n\n```\n$ yarn add bullmq\n```\n\nAdd jobs to the queue:\n\n```ts\nimport { Queue } from 'bullmq';\n\nconst queue = new Queue('Paint');\n\nqueue.add('cars', { color: 'blue' });\n```\n\nProcess the jobs in your workers:\n\n```ts\nimport { Worker } from 'bullmq';\n\nconst worker = new Worker('Paint', async job => {\n  if (job.name === 'cars') {\n    await paintCar(job.data.color);\n  }\n});\n```\n\nListen to jobs for completion:\n\n```ts\nimport { QueueEvents } from 'bullmq';\n\nconst queueEvents = new QueueEvents('Paint');\n\nqueueEvents.on('completed', ({ jobId }) => {\n  console.log('done painting');\n});\n\nqueueEvents.on('failed', ({ jobId: string, failedReason: string }) => {\n  console.error('error painting', failedReason);\n});\n```\n\nThis is just scratching the surface, check all the features and more in the official <a href=\"https://docs.bullmq.io\">documentation</a>\n\n# Feature Comparison\n\nSince there are a few job queue solutions, here is a table comparing them:\n\n| Feature                   |   Bullmq-Pro    |     Bullmq      |      Bull       |  Kue  | Bee      | Agenda |\n| :------------------------ | :-------------: | :-------------: | :-------------: | :---: | -------- | ------ |\n| Backend                   |      redis      |      redis      |      redis      | redis | redis    | mongo  |\n| Observables               |        ✓        |                 |                 |       |          |        |\n| Group Rate Limit          |        ✓        |                 |                 |       |          |        |\n| Group Support             |        ✓        |                 |                 |       |          |        |\n| Parent/Child Dependencies |        ✓        |        ✓        |                 |       |          |        |\n| Priorities                |        ✓        |        ✓        |        ✓        |   ✓   |          | ✓      |\n| Concurrency               |        ✓        |        ✓        |        ✓        |   ✓   | ✓        | ✓      |\n| Delayed jobs              |        ✓        |        ✓        |        ✓        |   ✓   |          | ✓      |\n| Global events             |        ✓        |        ✓        |        ✓        |   ✓   |          |        |\n| Rate Limiter              |        ✓        |        ✓        |        ✓        |       |          |        |\n| Pause/Resume              |        ✓        |        ✓        |        ✓        |   ✓   |          |        |\n| Sandboxed worker          |        ✓        |        ✓        |        ✓        |       |          |        |\n| Repeatable jobs           |        ✓        |        ✓        |        ✓        |       |          | ✓      |\n| Atomic ops                |        ✓        |        ✓        |        ✓        |       | ✓        |        |\n| Persistence               |        ✓        |        ✓        |        ✓        |   ✓   | ✓        | ✓      |\n| UI                        |        ✓        |        ✓        |        ✓        |   ✓   |          | ✓      |\n| Optimized for             | Jobs / Messages | Jobs / Messages | Jobs / Messages | Jobs  | Messages | Jobs   |\n\n# 🚀 Sponsor 🚀\n\n[![RedisGreen](https://www.redisgreen.com/images/rglogo/redisgreen_transparent_240x48.png)](https://dashboard.redisgreen.net/new?utm_campaign=BULLMQ)\n\nIf you need high quality production Redis instances for your BullMQ project, please consider subscribing to [RedisGreen](https://dashboard.redisgreen.net/new?utm_campaign=BULLMQ), leaders in Redis hosting that works perfectly with BullMQ. Use the promo code \"BULLMQ\" when signing up to help us sponsor the development of BullMQ!\n\n## Contributing\n\nFork the repo, make some changes, submit a pull-request! Here is the [contributing](contributing.md) doc that has more details.\n\n# Thanks\n\nThanks for all the contributors that made this library possible,\nalso a special mention to Leon van Kammen that kindly donated\nhis npm bullmq repo.\n","readmeFilename":"README.md"}