Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

BullMQ - Message Queue and Batch processing for NodeJS and Python based on Redis

License

NotificationsYou must be signed in to change notification settings

dragonflydb/bullmq

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation




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

Read thedocumentation

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 🚀

🌐 Language agnostic BullMQ

Do you need to work with BullMQ on platforms other than Node.js? If so, check out theBullMQ 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 atTaskforce.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 morehere on how to use it with BullMQ.

Used by

Some notable organizations using BullMQ:

MicrosoftVendureDatawrapperNest
CurriNovuNoCodeDBInfisical

The gist

Install:

$ yarn add bullmq

Add jobs to the queue:

import{Queue}from'bullmq';constqueue=newQueue('Paint');queue.add('cars',{color:'blue'});

Process the jobs in your workers:

import{Worker}from'bullmq';constworker=newWorker('Paint',asyncjob=>{if(job.name==='cars'){awaitpaintCar(job.data.color);}});

Listen to jobs for completion:

import{QueueEvents}from'bullmq';constqueueEvents=newQueueEvents('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 officialdocumentation

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
Debouncing
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 thecontributing 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 donatedhis npm bullmq repo.

About

BullMQ - Message Queue and Batch processing for NodeJS and Python based on Redis

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript81.6%
  • Lua9.3%
  • Python8.8%
  • Other0.3%

[8]ページ先頭

©2009-2025 Movatter.jp