# BullMQ ## Docs - [Metrics](https://mintlify.wiki/taskforcesh/bullmq/advanced/metrics.md): Track queue performance with built-in metrics gathering - [Parallelism and Concurrency](https://mintlify.wiki/taskforcesh/bullmq/advanced/parallelism-concurrency.md): Understand the difference between parallelism and concurrency in BullMQ - [Rate Limiting](https://mintlify.wiki/taskforcesh/bullmq/advanced/rate-limiting.md): Control the rate at which jobs are processed in your BullMQ queues - [Retrying Failing Jobs](https://mintlify.wiki/taskforcesh/bullmq/advanced/retrying-failing-jobs.md): Automatically retry failed jobs with configurable backoff strategies - [Returning Job Data](https://mintlify.wiki/taskforcesh/bullmq/advanced/returning-job-data.md): Return and access results from completed jobs - [Telemetry](https://mintlify.wiki/taskforcesh/bullmq/advanced/telemetry.md): Integrate BullMQ with OpenTelemetry for distributed tracing and observability - [Backoffs](https://mintlify.wiki/taskforcesh/bullmq/api/backoffs.md): Backoff strategies for job retries - [ErrorCode](https://mintlify.wiki/taskforcesh/bullmq/api/enums/error-code.md): Enum of error codes returned by BullMQ Lua scripts - [DelayedError](https://mintlify.wiki/taskforcesh/bullmq/api/errors/delayed-error.md): Error to move a job back to delayed state from active state - [RateLimitError](https://mintlify.wiki/taskforcesh/bullmq/api/errors/rate-limit-error.md): Error to indicate rate limit has been exceeded - [UnrecoverableError](https://mintlify.wiki/taskforcesh/bullmq/api/errors/unrecoverable-error.md): Error to move a job to failed state immediately without retries - [WaitingChildrenError](https://mintlify.wiki/taskforcesh/bullmq/api/errors/waiting-children-error.md): Error to move a job to waiting-children state - [WaitingError](https://mintlify.wiki/taskforcesh/bullmq/api/errors/waiting-error.md): Error thrown when a job is manually moved to wait or prioritized state - [FlowProducer](https://mintlify.wiki/taskforcesh/bullmq/api/flow-producer.md): Add jobs with dependencies in tree-like structures (flows) - [ConnectionOptions](https://mintlify.wiki/taskforcesh/bullmq/api/interfaces/connection-options.md): Redis connection configuration - [FlowJob](https://mintlify.wiki/taskforcesh/bullmq/api/interfaces/flow-job.md): Defines a job with dependencies in a flow structure - [JobOptions](https://mintlify.wiki/taskforcesh/bullmq/api/interfaces/job-options.md): Configuration options for individual jobs - [QueueOptions](https://mintlify.wiki/taskforcesh/bullmq/api/interfaces/queue-options.md): Configuration options for Queue instances - [RepeatableOptions](https://mintlify.wiki/taskforcesh/bullmq/api/interfaces/repeatable-options.md): Options for repeating jobs at scheduled intervals - [WorkerOptions](https://mintlify.wiki/taskforcesh/bullmq/api/interfaces/worker-options.md): Configuration options for Worker instances - [Job](https://mintlify.wiki/taskforcesh/bullmq/api/job.md): Represents a job in the queue with data, options, and state - [JobScheduler](https://mintlify.wiki/taskforcesh/bullmq/api/job-scheduler.md): Manage scheduled jobs that repeat at specified intervals - [Queue](https://mintlify.wiki/taskforcesh/bullmq/api/queue.md): Main class for adding jobs to a queue and managing queue operations - [QueueEvents](https://mintlify.wiki/taskforcesh/bullmq/api/queue-events.md): Listen to global events emitted by a queue - [QueueGetters](https://mintlify.wiki/taskforcesh/bullmq/api/queue-getters.md): Provides getters for different aspects of a queue - [RedisConnection](https://mintlify.wiki/taskforcesh/bullmq/api/redis-connection.md): Manages Redis connections for BullMQ - [Repeat](https://mintlify.wiki/taskforcesh/bullmq/api/repeat.md): Manage repeatable jobs (legacy - use JobScheduler instead) - [JobProgress](https://mintlify.wiki/taskforcesh/bullmq/api/types/job-progress.md): Type for job progress updates - [Processor](https://mintlify.wiki/taskforcesh/bullmq/api/types/processor.md): Function type for processing jobs - [Worker](https://mintlify.wiki/taskforcesh/bullmq/api/worker.md): Process jobs from a queue with concurrency support - [Architecture](https://mintlify.wiki/taskforcesh/bullmq/architecture.md): Understand how BullMQ is implemented on top of Redis - [Connections](https://mintlify.wiki/taskforcesh/bullmq/concepts/connections.md): Learn how to configure and manage Redis connections in BullMQ - [Events](https://mintlify.wiki/taskforcesh/bullmq/concepts/events.md): Monitor and react to queue and job events in BullMQ - [Jobs](https://mintlify.wiki/taskforcesh/bullmq/concepts/jobs.md): Understand the job lifecycle and manipulation in BullMQ - [Queues](https://mintlify.wiki/taskforcesh/bullmq/concepts/queues.md): Create and manage job queues with BullMQ - [Workers](https://mintlify.wiki/taskforcesh/bullmq/concepts/workers.md): Process jobs efficiently with BullMQ workers - [Changelog](https://mintlify.wiki/taskforcesh/bullmq/elixir/changelog.md): Release history for BullMQ Elixir - [Installation](https://mintlify.wiki/taskforcesh/bullmq/elixir/installation.md): How to install BullMQ for Elixir - [Elixir](https://mintlify.wiki/taskforcesh/bullmq/elixir/introduction.md): BullMQ for Elixir - A powerful, fast, and robust job queue backed by Redis - [Usage](https://mintlify.wiki/taskforcesh/bullmq/elixir/usage.md): Learn how to use BullMQ in Elixir - [Adding Flows in Bulk](https://mintlify.wiki/taskforcesh/bullmq/flows/adding-flows-bulk.md): Atomically add multiple flows to reduce Redis roundtrips - [Continue Parent](https://mintlify.wiki/taskforcesh/bullmq/flows/continue-parent.md): Process parent jobs immediately when children fail and clean up remaining jobs - [Fail Parent](https://mintlify.wiki/taskforcesh/bullmq/flows/fail-parent.md): Make parent jobs fail immediately when specific children fail - [Get Flow Tree](https://mintlify.wiki/taskforcesh/bullmq/flows/get-flow-tree.md): Retrieve job hierarchies with all children and grandchildren - [Ignore Dependency](https://mintlify.wiki/taskforcesh/bullmq/flows/ignore-dependency.md): Allow parent jobs to complete while tracking failed children - [Flows Overview](https://mintlify.wiki/taskforcesh/bullmq/flows/overview.md): Create complex job dependencies with parent-child relationships - [Parent-Child Dependencies](https://mintlify.wiki/taskforcesh/bullmq/flows/parent-child-dependencies.md): Understand and manage complex parent-child job relationships - [Remove Dependency](https://mintlify.wiki/taskforcesh/bullmq/flows/remove-dependency.md): Remove failed children from parent dependencies to allow parent completion - [Installation](https://mintlify.wiki/taskforcesh/bullmq/installation.md): Install BullMQ in your Node.js project - [NestJS Integration](https://mintlify.wiki/taskforcesh/bullmq/integrations/nestjs.md): Integrate BullMQ with NestJS using the official @nestjs/bullmq package - [NestJS Producers](https://mintlify.wiki/taskforcesh/bullmq/integrations/nestjs-producers.md): Add jobs to BullMQ queues in NestJS applications - [NestJS Queue Events](https://mintlify.wiki/taskforcesh/bullmq/integrations/nestjs-queue-events.md): Listen to queue events in NestJS using QueueEventsListener - [What is BullMQ](https://mintlify.wiki/taskforcesh/bullmq/introduction.md): Learn about BullMQ, a fast and robust Redis-based distributed queue system for Node.js - [Deduplication](https://mintlify.wiki/taskforcesh/bullmq/jobs/deduplication.md): Prevent duplicate job execution with deduplication strategies - [Delayed Jobs](https://mintlify.wiki/taskforcesh/bullmq/jobs/delayed.md): Schedule jobs to be processed at a future time - [FIFO & LIFO](https://mintlify.wiki/taskforcesh/bullmq/jobs/fifo-lifo.md): Control the order in which jobs are processed - [Getters](https://mintlify.wiki/taskforcesh/bullmq/jobs/getters.md): Retrieve job information and statistics from the queue - [Job Data](https://mintlify.wiki/taskforcesh/bullmq/jobs/job-data.md): Store and update custom data in your jobs - [Job IDs](https://mintlify.wiki/taskforcesh/bullmq/jobs/job-ids.md): Control job uniqueness with custom identifiers - [Prioritized Jobs](https://mintlify.wiki/taskforcesh/bullmq/jobs/prioritized.md): Control job processing order with priority values - [Removing Jobs](https://mintlify.wiki/taskforcesh/bullmq/jobs/removing.md): Remove jobs from the queue manually or automatically - [Repeatable Jobs](https://mintlify.wiki/taskforcesh/bullmq/jobs/repeatable.md): Schedule recurring jobs with cron patterns or fixed intervals - [Retrying Jobs](https://mintlify.wiki/taskforcesh/bullmq/jobs/retrying.md): Manually retry completed or failed jobs - [Stalled Jobs](https://mintlify.wiki/taskforcesh/bullmq/jobs/stalled.md): Understanding and preventing stalled jobs in BullMQ - [Bull to BullMQ Migration](https://mintlify.wiki/taskforcesh/bullmq/migrations/bull-to-bullmq.md): Tips and guidance for migrating from Bull to BullMQ - [Migrating to Newer Versions](https://mintlify.wiki/taskforcesh/bullmq/migrations/newer-versions.md): Strategies for upgrading BullMQ to newer versions in production - [Migration Overview](https://mintlify.wiki/taskforcesh/bullmq/migrations/overview.md): Guide to migrating to BullMQ from Bull and upgrading between BullMQ versions - [Going to Production](https://mintlify.wiki/taskforcesh/bullmq/operations/going-to-production.md): Essential considerations and best practices for deploying BullMQ to production - [Troubleshooting](https://mintlify.wiki/taskforcesh/bullmq/operations/troubleshooting.md): Common errors and solutions when using BullMQ - [Failing Fast When Redis is Down](https://mintlify.wiki/taskforcesh/bullmq/patterns/failing-fast-redis-down.md): Configure BullMQ to fail immediately when Redis is unavailable instead of queuing commands - [Idempotent Jobs](https://mintlify.wiki/taskforcesh/bullmq/patterns/idempotent-jobs.md): Design jobs that can be safely retried without side effects - [Manual Retrying](https://mintlify.wiki/taskforcesh/bullmq/patterns/manual-retrying.md): Retry a job immediately during processing using moveToWait - [Manually Processing Jobs](https://mintlify.wiki/taskforcesh/bullmq/patterns/manually-processing-jobs.md): Fetch and process jobs manually without automatic worker processing - [Named Processor](https://mintlify.wiki/taskforcesh/bullmq/patterns/named-processor.md): Handle multiple job types in a single worker using switch statements - [Process Step Jobs](https://mintlify.wiki/taskforcesh/bullmq/patterns/process-step-jobs.md): Break processor functions into steps with state persistence - [Redis Cluster](https://mintlify.wiki/taskforcesh/bullmq/patterns/redis-cluster.md): Configure BullMQ to work with Redis Cluster using hash tags - [Stop Retrying Jobs](https://mintlify.wiki/taskforcesh/bullmq/patterns/stop-retrying-jobs.md): Use UnrecoverableError to prevent automatic retries - [Throttle Jobs](https://mintlify.wiki/taskforcesh/bullmq/patterns/throttle-jobs.md): Prevent duplicate jobs from being added by using job IDs - [Timeout Jobs](https://mintlify.wiki/taskforcesh/bullmq/patterns/timeout-jobs.md): Implement timeouts for long-running jobs using AbortController - [Changelog](https://mintlify.wiki/taskforcesh/bullmq/php/changelog.md): Release history for BullMQ PHP - [Installation](https://mintlify.wiki/taskforcesh/bullmq/php/installation.md): How to install BullMQ for PHP - [PHP](https://mintlify.wiki/taskforcesh/bullmq/php/introduction.md): BullMQ PHP client for adding jobs to queues - [Usage](https://mintlify.wiki/taskforcesh/bullmq/php/usage.md): Learn how to use BullMQ in PHP - [Changelog](https://mintlify.wiki/taskforcesh/bullmq/python/changelog.md): Release history for BullMQ Python - [Installation](https://mintlify.wiki/taskforcesh/bullmq/python/installation.md): How to install BullMQ for Python - [Python](https://mintlify.wiki/taskforcesh/bullmq/python/introduction.md): BullMQ for Python - A background job processor and message queue based on Redis - [Usage](https://mintlify.wiki/taskforcesh/bullmq/python/usage.md): Learn how to use BullMQ in Python - [Adding Jobs](https://mintlify.wiki/taskforcesh/bullmq/queues/adding-jobs.md): Learn how to add jobs to a BullMQ queue with various options - [Adding Jobs in Bulk](https://mintlify.wiki/taskforcesh/bullmq/queues/adding-jobs-bulk.md): Add multiple jobs to a BullMQ queue atomically for better performance - [Auto-Removal of Jobs](https://mintlify.wiki/taskforcesh/bullmq/queues/auto-removal.md): Configure automatic removal of completed and failed jobs in BullMQ - [Global Concurrency](https://mintlify.wiki/taskforcesh/bullmq/queues/global-concurrency.md): Control the maximum number of jobs processed in parallel across all workers - [Global Rate Limit](https://mintlify.wiki/taskforcesh/bullmq/queues/global-rate-limit.md): Control the maximum number of jobs processed within a time period across all workers - [Queue Metadata](https://mintlify.wiki/taskforcesh/bullmq/queues/metadata.md): Access and understand queue metadata in BullMQ - [Removing Jobs](https://mintlify.wiki/taskforcesh/bullmq/queues/removing-jobs.md): Methods for removing jobs and cleaning up queue data in BullMQ - [Quick Start](https://mintlify.wiki/taskforcesh/bullmq/quick-start.md): Get up and running with BullMQ in minutes - [Redis Compatibility](https://mintlify.wiki/taskforcesh/bullmq/redis/compatibility.md): Learn about Redis compatibility requirements and alternatives for BullMQ - [Dragonfly](https://mintlify.wiki/taskforcesh/bullmq/redis/dragonfly.md): Use Dragonfly as a high-performance Redis alternative for BullMQ - [AWS ElastiCache](https://mintlify.wiki/taskforcesh/bullmq/redis/hosting-aws-elasticache.md): Configure AWS ElastiCache for Redis to work with BullMQ - [AWS MemoryDB](https://mintlify.wiki/taskforcesh/bullmq/redis/hosting-aws-memorydb.md): Configure AWS MemoryDB for Redis as a managed database for BullMQ - [Managing Job Schedulers](https://mintlify.wiki/taskforcesh/bullmq/schedulers/management.md): Learn how to manage, retrieve, and remove job schedulers in BullMQ - [Job Schedulers Overview](https://mintlify.wiki/taskforcesh/bullmq/schedulers/overview.md): Learn how to create and manage repeatable jobs using Job Schedulers in BullMQ - [Repeat Options](https://mintlify.wiki/taskforcesh/bullmq/schedulers/repeat-options.md): Configure advanced options for repeatable jobs including start dates, end dates, limits, and more - [Repeat Strategies](https://mintlify.wiki/taskforcesh/bullmq/schedulers/repeat-strategies.md): Learn about different strategies for scheduling repeatable jobs in BullMQ - [Auto-removal of Jobs](https://mintlify.wiki/taskforcesh/bullmq/workers/auto-removal.md): Automatically remove completed and failed jobs to manage Redis memory usage - [Cancelling Jobs](https://mintlify.wiki/taskforcesh/bullmq/workers/cancelling-jobs.md): Cancel jobs in progress using AbortSignal for graceful job cancellation - [Concurrency](https://mintlify.wiki/taskforcesh/bullmq/workers/concurrency.md): Configure parallel job processing with BullMQ workers - [Graceful Shutdown](https://mintlify.wiki/taskforcesh/bullmq/workers/graceful-shutdown.md): Properly close workers to minimize stalled jobs and ensure clean termination - [Workers Overview](https://mintlify.wiki/taskforcesh/bullmq/workers/overview.md): Learn how to create and configure workers to process jobs from your BullMQ queues - [Pausing Queues](https://mintlify.wiki/taskforcesh/bullmq/workers/pausing-queues.md): Control worker job processing by pausing and resuming workers or queues - [Sandboxed Processors](https://mintlify.wiki/taskforcesh/bullmq/workers/sandboxed-processors.md): Isolate CPU-intensive job processing in separate processes or worker threads - [Stalled Jobs](https://mintlify.wiki/taskforcesh/bullmq/workers/stalled-jobs.md): Understand how BullMQ detects and recovers stalled jobs