awesome-repositories.com
Blog
awesome-repositories.com

Descubre los mejores repositorios open-source con nuestra búsqueda potenciada por IA.

ExplorarBúsquedas curadasAlternativas open-sourceSoftware autohospedableBlogMapa del sitio
ProyectoAcerca deCómo clasificamosPrensaServidor MCP
Aviso legalPrivacidadTérminos
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
Bogdanp avatar

Bogdanp/dramatiq

0
View on GitHub↗
5,136 estrellas·355 forks·Python·lgpl-3.0·10 vistasdramatiq.io↗

Dramatiq

Dramatiq is a distributed task queue and workload manager used to offload function execution to background workers. It functions as an asynchronous task orchestrator that enables the distribution of computational tasks across a cluster using a pluggable transport layer supporting RabbitMQ and Redis.

The framework provides specialized tools for complex task orchestration, including the ability to link background jobs into sequences, pipelines, and barriers. It further manages distributed concurrency through the use of shared mutexes, rate limiters, and exponential backoff retries to prevent resource exhaustion.

Its broader capabilities cover reliable message queueing with dead letter management, task prioritization, and the persistence of task results. The system also includes a multi-process worker model and a middleware system for extending the message lifecycle.

A stub broker is provided to allow tasks to be tested synchronously without a live message broker environment.

Features

  • Asynchronous Task Processing - Offloads long-running functions to background workers via Redis or RabbitMQ to keep main applications responsive.
  • Distributed Task Workers - Distributes computational workloads across multiple worker processes to handle high volumes of concurrent tasks.
  • Message Brokers - Functions as a distributed task queue using RabbitMQ or Redis to decouple asynchronous communication between services.
  • Distributed Task Queues - Functions as a distributed task queue that offloads function execution to background workers via RabbitMQ or Redis.
  • Output Chaining - Links multiple tasks together in a pipeline so the output of one task is passed as input to the next.
  • Task Orchestrators - Links background jobs into sequences or pipelines where the output of one task triggers the start of the next.
  • Distributed Task Coordination - Uses shared locks and barriers to coordinate task execution and prevent resource exhaustion across a cluster.
  • Distributed Locks - Utilizes shared locks to coordinate access and prevent simultaneous execution of the same task across a cluster.
  • Message Queue Workers - Provides background processing components that consume and execute tasks from declared message queues.
  • Reliable Message Delivery - Ensures background jobs are delivered and completed through retries, dead letter queues, and persistence mechanisms.
  • Distributed Rate Limiting - Uses distributed rate limiters to restrict the frequency and concurrency of background tasks across a cluster.
  • Task Queues - Allows declaration of named queues and provides mechanisms to enqueue messages or flush pending tasks.
  • Background Process Offloading - Offloads long-running computations to separate background processes to keep the main application responsive.
  • Broker Disk Persistence - Ensures reliable message delivery by storing tasks on disk and redelivering them if processing fails.
  • Message Delivery Guarantees - Guarantees reliable message delivery between producers and consumers using explicit acknowledgments.
  • Exponential Backoff Retries - Re-enqueues failed messages using exponential backoff with configurable limits and predicates.
  • Worker Process Consumers - Spawns independent OS processes and threads as consumers that pull tasks from a shared queue for parallel execution.
  • Asynchronous Task Orchestrators - Provides a framework for linking background jobs into sequences, pipelines, and barriers to orchestrate complex asynchronous workflows.
  • Concurrent Task Limiters - Constrains the number of simultaneous task instances using distributed mutexes to prevent system resource exhaustion.
  • Distributed Job Locking - Prevents multiple workers from processing the same job simultaneously using a distributed lock mechanism.
  • Task Actors - Provides a mechanism to wrap functions as actors for asynchronous execution via a message broker.
  • Backoff Strategies - Implements algorithmic delays between retry attempts that increase exponentially to prevent system overload.
  • Background Job Schedulers - Defers the execution of specific tasks to a future time or triggers them based on external events.
  • In-Memory Testing - Provides a local in-memory implementation for verifying task behavior without requiring an external network transport.
  • Task Result Storage - Saves the return values of background tasks to a remote store for later retrieval by other processes.
  • Workflow Result Retrieval - Provides mechanisms to persist and fetch the return values of completed background tasks using unique identifiers.
  • Task Completion Callbacks - Executes specific actors automatically when another task succeeds or fails to handle post-processing.
  • Task Interruption Handlers - Safely halts active worker threads via exceptions during shutdowns or timeout events.
  • Distributed Concurrency Controls - Implements distributed mutexes and rate limiters to prevent resource exhaustion across a cluster of workers.
  • Task Execution Prioritization - Assigns importance levels to tasks to ensure high-priority work is processed before lower-priority items.
  • Delayed Task Scheduling - Defers the execution of a task to a specific time in the future or after a specified delay.
  • Running Task Terminations - Allows stopping active task executions mid-process using unique message identifiers to recover resources.
  • Barrier Synchronization - Coordinates multiple remote workers by blocking execution until a specific number of tasks reach a checkpoint.
  • Dead Letter Queues - Isolates unprocessable messages that exceed retry or age limits into specialized queues for inspection.
  • Queue-Based Worker Routing - Binds specific worker groups to designated queues to control throughput and prioritize different types of work.
  • Broker Adapters - Implements plugin-based interfaces that allow different message broker technologies to be swapped interchangeably.
  • Broker Integrations - Provides a pluggable transport layer supporting multiple brokers like Redis and RabbitMQ for task payload delivery.
  • Async Task Timeouts - Enforces execution time limits on asynchronous operations to prevent workers from hanging.
  • Pluggable Transport Backends - Provides a pluggable backend interface to switch between transport protocols like RabbitMQ and Redis without changing application code.
  • Concurrent Task Execution - Supports running concurrent workers using lightweight threads like Gevent to increase performance for I/O workloads.
  • Distributed Barrier Synchronization - Implements distributed barriers to coordinate multiple remote workers by blocking execution until a specific task count is reached.
  • Module Functionality Extenders - Allows implementation of custom middleware classes to hook into the message lifecycle and modify global behavior.
  • Middleware Lifecycle Hooks - Provides a middleware system to intercept message enqueueing and acknowledgement for custom global behavior modifications.
  • Task Lifecycle Interceptions - Provides middleware hooks to modify job payloads before enqueuing and wrap execution logic for global behavior control.
  • In-Memory Broker Stubs - Replaces the remote message broker with a local in-memory implementation for instant synchronous unit test execution.
  • Grouped Parallel Execution - Enqueues groups of tasks for concurrent execution and triggers a callback upon collective completion.
  • Task Queues - Listed in the “Task Queues” section of the Awesome Python awesome list.
  • Task Queues and Background Jobs - Integration for background task processing.
  • Task Queues - Reliable background task processing for modern applications.

Historial de estrellas

Gráfico del historial de estrellas de bogdanp/dramatiqGráfico del historial de estrellas de bogdanp/dramatiq

Búsqueda con IA

Explora más repositorios increíbles

Describe lo que necesitas en lenguaje sencillo: la IA clasifica miles de proyectos open-source curados por relevancia.

Start searching with AI

Alternativas open-source a Dramatiq

Proyectos open-source similares, clasificados según cuántas características comparten con Dramatiq.
  • richardknop/machineryAvatar de RichardKnop

    RichardKnop/machinery

    7,956Ver en GitHub↗

    Machinery is a distributed task queue and asynchronous workflow engine. It provides a system for processing heavy workloads outside the main request flow using a network of distributed background workers and a message-based job orchestrator. The project manages complex task lifecycles through sequential chaining, where results are passed between tasks, and parallel coordination, which can trigger callback tasks upon the completion of a group. It supports periodic workflow scheduling for recurring jobs and delayed execution via specific timestamps. The system includes capabilities for result

    Goamqpaws-sqsgo
    Ver en GitHub↗7,956
  • coleifer/hueyAvatar de coleifer

    coleifer/huey

    5,933Ver en GitHub↗

    .. image:: https://media.charlesleifer.com/blog/photos/huey3-logo.png

    Pythondankpythonqueue
    Ver en GitHub↗5,933
  • beanstalkd/beanstalkdAvatar de beanstalkd

    beanstalkd/beanstalkd

    6,697Ver en GitHub↗

    Beanstalkd is a distributed work queue server designed for asynchronous job processing. It functions as a standalone server that distributes background tasks between producers and consumers to improve application responsiveness and throughput. The system organizes tasks using numeric priority levels to ensure critical work is processed first. It manages the job lifecycle through discrete states and uses a simple line-based text protocol over TCP for communication. To ensure reliability, the server persists job data to a sequential disk log, allowing the queue state to be recovered after a sy

    C
    Ver en GitHub↗6,697
  • taskforcesh/bullmqAvatar de taskforcesh

    taskforcesh/bullmq

    8,432Ver en 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
    Ver en GitHub↗8,432
Ver las 30 alternativas a Dramatiq→

Preguntas frecuentes

¿Qué hace bogdanp/dramatiq?

Dramatiq is a distributed task queue and workload manager used to offload function execution to background workers. It functions as an asynchronous task orchestrator that enables the distribution of computational tasks across a cluster using a pluggable transport layer supporting RabbitMQ and Redis.

¿Cuáles son las características principales de bogdanp/dramatiq?

Las características principales de bogdanp/dramatiq son: Asynchronous Task Processing, Distributed Task Workers, Message Brokers, Distributed Task Queues, Output Chaining, Task Orchestrators, Distributed Task Coordination, Distributed Locks.

¿Qué alternativas de código abierto existen para bogdanp/dramatiq?

Las alternativas de código abierto para bogdanp/dramatiq incluyen: richardknop/machinery — Machinery is a distributed task queue and asynchronous workflow engine. It provides a system for processing heavy… coleifer/huey — .. image:: https://media.charlesleifer.com/blog/photos/huey3-logo.png. beanstalkd/beanstalkd — Beanstalkd is a distributed work queue server designed for asynchronous job processing. It functions as a standalone… taskforcesh/bullmq — BullMQ is a Redis-backed message queue library and background processor designed for distributed task queueing. It… rq/rq — rq is a distributed task queue and background worker system for Python that uses a Redis backend to decouple task… doocs/advanced-java — This project is a comprehensive Java backend engineering guide and technical reference focused on high-concurrency…