awesome-repositories.com
Blog
awesome-repositories.com

Descoperă cele mai bune repository-uri open source cu căutare AI.

ExploreazăCăutări recomandateAlternative open-sourceSoftware self-hostedBlogHartă site
ProiectDespreCum realizăm clasamentulPresăServer MCP
LegalConfidențialitateTermeni
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
OptimalBits avatar

OptimalBits/bull

0
View on GitHub↗
16,243 stele·1,422 fork-uri·JavaScript·15 vizualizări

Bull

Bull is a Node.js library for managing distributed jobs and message queues using Redis as the primary data store. It functions as a distributed task worker, job scheduler, and priority queue manager designed to handle asynchronous workloads across multiple processes.

The project distinguishes itself by providing a persistent communication channel that decouples servers through the exchange of serializable data objects. It ensures distributed system reliability by detecting stalled tasks and recovering from process crashes to ensure every queued job is completed.

The system covers a broad range of queue management capabilities, including priority-based task ordering, automatic retry policies, and delayed or recurring job execution via cron specifications. It provides observability tools for tracking job progress, querying execution states, and monitoring queue events. To maintain performance, it supports task concurrency scaling, rate limiting, and child-process sandboxing for CPU-intensive workloads.

The library includes specific integrations for Redis environments, such as connection pooling and hash-slot key prefixing for compatibility with Redis clusters.

Features

  • Distributed Task Queues - Implements a distributed task queue to process background work across multiple nodes reliably and at scale.
  • Redis-Backed Queues - Provides a distributed task queue that uses Redis as the primary data store for persistent state and message brokering.
  • Cron Scheduling - Supports automated job execution based on cron expressions for recurring background tasks.
  • Job Schedulers - Acts as a job scheduler for executing asynchronous functions with support for delayed and cron-based execution.
  • Background Task Runners - Orchestrates the lifecycle of heavy background tasks with custom priority, retry policies, and concurrency limits.
  • Task Schedulers - Automates periodic maintenance and updates using cron specifications to trigger recurring background jobs.
  • Distributed Processing - Distributes asynchronous task processing across multiple Node.js worker processes using a shared Redis backend.
  • Distributed Task Workers - Functions as a distributed task worker that processes heavy workloads across multiple threads or processes.
  • Job Priority Management - Manages job execution order based on priority levels, concurrency limits, and automatic retry policies.
  • Message Queues - Implements a persistent message queue for asynchronous task buffering and reliable event-driven workflows.
  • Heartbeat Monitors - Tracks worker liveness through periodic heartbeats to automatically detect and re-queue stalled jobs.
  • Job Queues - Provides infrastructure for managing asynchronous task execution by enqueueing serializable data objects.
  • Job Processors - Provides an engine to define job processors with associated concurrency limits and routing rules.
  • Message Queuing Architectures - Implements a message queuing architecture to decouple servers via asynchronous, persistent communication channels.
  • Persistent Operation Queues - Persists queue metadata and job payloads in Redis to ensure reliability across process restarts.
  • Reliable Task Queues - Ensures distributed system reliability by recovering from process crashes and automatically handling stalled tasks.
  • Task Retry Policies - Implements automatic job retries based on defined policies to recover from transient execution errors.
  • Lua Scripting - Utilizes server-side Lua scripts to perform atomic state transitions and prevent race conditions between distributed workers.
  • State Querying - Allows querying of specific job instances and aggregate counts of jobs in various execution states.
  • Slot-Based Routing - Uses hash-slot key prefixing to ensure all keys for a queue map to the same Redis cluster shard for atomicity.
  • Crash Recovery Systems - Automatically recovers from process crashes by detecting and restarting interrupted jobs.
  • Delayed Executions - Provides the capability to postpone the execution of background tasks until a specified future time.
  • Process Sandboxing - Executes CPU-intensive jobs in separate processes to prevent main-thread crashes and event-loop blocking.
  • Lifecycle Management - Enables manual control over job lifecycles, including retrying failed tasks and promoting delayed ones.
  • Hanging Job Alerts - Detects hanging processes through heartbeat monitoring and automatically triggers alerts or retries.
  • Polling-Based Worker Execution - Employs a polling-based execution model where workers retrieve tasks using Redis lists and sorted sets.
  • Process Scaling - Scales throughput by running multiple jobs simultaneously across independent worker processes.
  • Worker Throttling - Implements processing rate controls to prevent background jobs from overloading downstream dependencies.
  • Message Brokers - Functions as a Redis-based message broker to decouple servers through the exchange of serializable data objects.
  • Execution Control - Offers mechanisms to pause or resume job processing globally across all workers or locally.
  • Job Process Sandboxing - Provides child-process sandboxing to execute CPU-intensive or unstable jobs without blocking the main Node.js event loop.
  • Rate Limiting - Caps the number of jobs processed within a specific timeframe across all distributed workers to maintain system stability.
  • Task Sequencing Strategies - Supports flexible job processing sequences including first-in-first-out, last-in-first-out, and priority-based ordering.
  • Event Monitoring - Provides event monitoring to notify the system when jobs change state, such as completing or failing.
  • Job Monitoring Tools - Provides tools to track job progress via completion percentages and custom log history.
  • Job Queues - Persistent job and message queue system.
  • Messaging and Event Streaming - Fast and reliable Redis-based queue for Node.js applications.
  • Task Queues - Persistent job and message queue.

Istoric stele

Graficul istoricului de stele pentru optimalbits/bullGraficul istoricului de stele pentru optimalbits/bull

Căutare AI

Explorează mai multe repository-uri excelente

Descrie ce ai nevoie în limbaj simplu — AI-ul sortează mii de proiecte open source selectate în funcție de relevanță.

Start searching with AI

Alternative open-source pentru Bull

Proiecte open-source similare, clasificate după numărul de funcționalități comune cu Bull.
  • taskforcesh/bullmqAvatar taskforcesh

    taskforcesh/bullmq

    8,432Vezi pe GitHub↗

    BullMQ is a Redis-backed message queue library and background processor designed for distributed task queueing. It functions as a distributed queue manager and task scheduler, utilizing Redis to manage asynchronous job processing and persistence. The system distinguishes itself through its role as a job workflow orchestrator, enabling the definition of complex parent-child job dependencies and hierarchies for multi-step workflows. It provides sandboxed process execution to isolate heavy workloads and prevent event loop blocking, alongside distributed rate limiting to protect downstream servic

    TypeScriptbackground-jobselixirnodejs
    Vezi pe GitHub↗8,432
  • bee-queue/bee-queueAvatar bee-queue

    bee-queue/bee-queue

    4,032Vezi pe GitHub↗

    Bee-queue is a Node.js background processing system that uses Redis for job queueing and persistence. It is designed to offload heavy tasks from the main execution thread to background workers to maintain application responsiveness. The project provides distributed job processing, allowing worker nodes to run across multiple processes to handle large volumes of tasks concurrently. It ensures reliable task execution through automatic retries and the recovery of stalled processes. Its capability surface covers asynchronous task scheduling for delayed jobs, concurrency control for worker nodes,

    JavaScriptbee-queuejob-queuejob-scheduler
    Vezi pe GitHub↗4,032
  • rq/rqAvatar rq

    rq/rq

    10,653Vezi pe GitHub↗

    rq is a distributed task queue and background worker system for Python that uses a Redis backend to decouple task submission from execution. It functions as a reliable message queue and task scheduler, allowing Python functions or asyncio coroutines to be processed asynchronously across multiple worker processes. The project distinguishes itself through reliable queuing mechanisms that prevent job loss during worker crashes using atomic operations. It provides specialized orchestration capabilities, including the prevention of duplicate jobs, job execution prioritization, and the ability to m

    Pythonasyncbackground-jobsdelayed-jobs
    Vezi pe GitHub↗10,653
  • hangfireio/hangfireAvatar HangfireIO

    HangfireIO/Hangfire

    10,015Vezi pe GitHub↗

    Hangfire is a background job scheduler and distributed task queue for .NET applications. It serves as a job orchestration framework that offloads heavy processing to background workers using a SQL-backed processor to manage job state across multiple servers. The framework distinguishes itself through reliable task scheduling, where job metadata and arguments are persisted in an external database to ensure tasks survive application restarts. It supports advanced orchestration patterns, including the ability to chain dependent tasks so that a child job triggers automatically upon the successful

    C#background-jobsbackground-threadbackground-worker
    Vezi pe GitHub↗10,015
Vezi toate cele 30 alternative pentru Bull→

Întrebări frecvente

Ce face optimalbits/bull?

Bull is a Node.js library for managing distributed jobs and message queues using Redis as the primary data store. It functions as a distributed task worker, job scheduler, and priority queue manager designed to handle asynchronous workloads across multiple processes.

Care sunt principalele funcționalități ale optimalbits/bull?

Principalele funcționalități ale optimalbits/bull sunt: Distributed Task Queues, Redis-Backed Queues, Cron Scheduling, Job Schedulers, Background Task Runners, Task Schedulers, Distributed Processing, Distributed Task Workers.

Care sunt câteva alternative open-source pentru optimalbits/bull?

Alternativele open-source pentru optimalbits/bull includ: taskforcesh/bullmq — BullMQ is a Redis-backed message queue library and background processor designed for distributed task queueing. It… bee-queue/bee-queue — Bee-queue is a Node.js background processing system that uses Redis for job queueing and persistence. It is designed… rq/rq — rq is a distributed task queue and background worker system for Python that uses a Redis backend to decouple task… hangfireio/hangfire — Hangfire is a background job scheduler and distributed task queue for .NET applications. It serves as a job… resque/resque — Resque is a Ruby library for enqueueing and processing asynchronous tasks using Redis as a data store. It functions as… agenda/agenda — Agenda is a persistent background job scheduler and distributed task runner for Node.js applications. It functions as…