Socket
Socket
Sign inDemoInstall

bullmq

Package Overview
Dependencies
28
Maintainers
1
Versions
459
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

bullmq

Queue for messages and jobs based on Redis


Version published
Maintainers
1
Weekly downloads
532,659
decreased by-1.76%

Weekly downloads

Readme

Source



The fastest, most reliable, Redis-based distributed queue for Node.
Carefully written for rock solid stability and atomicity.

Read the documentation

Follow @manast for *important* Bull/BullMQ/BullMQ-Pro news and updates!

πŸ›  Tutorials

You can find tutorials and news in this blog: https://blog.taskforce.sh/

News πŸš€

Do you need to work with BullMQ on platforms other than Node.js? If so, check out the BullMQ Proxy

Official FrontEnd

Taskforce.sh, Inc

Supercharge your queues with a professional front end:

  • Get a complete overview of all your queues.
  • Inspect jobs, search, retry, or promote delayed jobs.
  • Metrics and statistics.
  • and many more features.

Sign up at Taskforce.sh

πŸš€ Sponsors πŸš€

Dragonfly Dragonfly is a new Redisβ„’ drop-in replacement that is fully compatible with BullMQ and brings some important advantages over Redisβ„’ such as massive better performance by utilizing all CPU cores available and faster and more memory efficient data structures. Read more here on how to use it with BullMQ.
Memetria for Redis If you need high quality production Redis instances for your BullMQ project, please consider subscribing to Memetria for Redis, 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!

Used by

Some notable organizations using BullMQ:

Microsoft Vendure Datawrapper Nest
Curri Novu NoCodeDB Infisical

The gist

Install:

$ yarn add bullmq

Add jobs to the queue:

import { Queue } from 'bullmq';

const queue = new Queue('Paint');

queue.add('cars', { color: 'blue' });

Process the jobs in your workers:

import { Worker } from 'bullmq';

const worker = new Worker('Paint', async job => {
  if (job.name === 'cars') {
    await paintCar(job.data.color);
  }
});

Listen to jobs for completion:

import { QueueEvents } from 'bullmq';

const queueEvents = new QueueEvents('Paint');

queueEvents.on('completed', ({ jobId }) => {
  console.log('done painting');
});

queueEvents.on(
  'failed',
  ({ jobId, failedReason }: { jobId: string; failedReason: string }) => {
    console.error('error painting', failedReason);
  },
);

This is just scratching the surface, check all the features and more in the official documentation

Feature Comparison

Since there are a few job queue solutions, here is a table comparing them:

FeatureBullMQ-ProBullMQBullKueBeeAgenda
Backendredisredisredisredisredismongo
Observablesβœ“
Group Rate Limitβœ“
Group Supportβœ“
Batches Supportβœ“
Parent/Child Dependenciesβœ“βœ“
Prioritiesβœ“βœ“βœ“βœ“βœ“
Concurrencyβœ“βœ“βœ“βœ“βœ“βœ“
Delayed jobsβœ“βœ“βœ“βœ“βœ“
Global eventsβœ“βœ“βœ“βœ“
Rate Limiterβœ“βœ“βœ“
Pause/Resumeβœ“βœ“βœ“βœ“
Sandboxed workerβœ“βœ“βœ“
Repeatable jobsβœ“βœ“βœ“βœ“
Atomic opsβœ“βœ“βœ“βœ“
Persistenceβœ“βœ“βœ“βœ“βœ“βœ“
UIβœ“βœ“βœ“βœ“βœ“
Optimized forJobs / MessagesJobs / MessagesJobs / MessagesJobsMessagesJobs

Contributing

Fork the repo, make some changes, submit a pull-request! Here is the contributing doc that has more details.

Thanks

Thanks for all the contributors that made this library possible, also a special mention to Leon van Kammen that kindly donated his npm bullmq repo.

Keywords

FAQs

Last updated on 26 Mar 2024

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚑️ by Socket Inc