A background job processing library for Elixir using RabbitMQ for reliable messaging and job queuing.
TaskBunny is a background job processing library for Elixir that uses RabbitMQ as its messaging backend. It allows developers to offload asynchronous tasks, manage job retries with custom intervals, schedule delayed execution, and control concurrency. It solves the problem of reliable, distributed job processing in Elixir applications, especially in containerized or immutable deployment environments.
Elixir developers building applications that require reliable background job processing, particularly those using RabbitMQ for messaging and needing fine-grained control over job execution and retries.
Developers choose TaskBunny for its tight integration with RabbitMQ, providing durable messaging and automatic reconnection, along with flexible retry logic, scheduling, and concurrency controls that are essential for production-grade background processing in distributed systems.
TaskBunny is a background processing application written in Elixir and uses RabbitMQ as a messaging backend
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Leverages RabbitMQ for durable message queuing with automatic reconnection and multi-host support, ensuring job persistence and fault tolerance in distributed systems.
Allows per-job customization of retry counts and intervals, including exponential backoff, providing fine-grained control over failure handling as detailed in the README's retry configuration examples.
Supports delayed job execution using RabbitMQ's delay queues, enabling future task scheduling without application-level timers or external cron jobs.
Enables job enqueuing from external systems via JSON messages over RabbitMQ, facilitating integration in heterogeneous environments without requiring Elixir code changes.
Requires setting up and maintaining a RabbitMQ instance, adding operational complexity and a potential single point of failure compared to Erlang-native solutions like direct GenServer use.
The README admits that configuring TaskBunny in umbrella apps requires prefixed keys and careful setup, which can be error-prone and less intuitive for developers.
Only a few pre-built failure backends like Sentry and Rollbar are listed, indicating a smaller ecosystem that might require custom implementation for other monitoring services.
task_bunny is an open-source alternative to the following products:
Resque is a Redis-backed Ruby library for creating background jobs, placing them on multiple queues, and processing them later.
Sidekiq is a background job processing framework for Ruby applications, using Redis to queue and execute jobs asynchronously.
RQ (Redis Queue) is a simple Python library for queueing jobs and processing them in the background with workers, using Redis as a message broker.