A Ruby gem providing a simple and reliable beanstalkd-powered job queue for background processing.
Backburner is a Ruby gem that provides a job queue system powered by beanstalkd, enabling asynchronous processing of background tasks. It allows developers to enqueue jobs, manage multiple queues, set priorities, and handle retries, solving the need for reliable and scalable background job processing in Ruby applications.
Ruby developers building web applications with Rails, Sinatra, or Padrino who need a robust and simple background job processing solution.
Developers choose Backburner for its tight integration with beanstalkd, which offers built-in features like priorities, persistence, and speed without additional complexity, along with familiar patterns inspired by Resque and DelayedJob.
Simple and reliable beanstalkd job queue for ruby
Leverages beanstalkd's native features like priorities, persistence, and fast in-memory processing without extra gem code, ensuring high performance for job queues.
Supports both custom job classes and the async method for enqueuing any object's method, offering versatility similar to DelayedJob with minimal boilerplate.
Allows setting exponential back-off via retry_delay_proc and max_job_retries, providing robust error handling for transient failures, though defaults to no retries.
Includes Simple, Forking, ThreadsOnFork, and Threading workers to adapt to different concurrency needs, with options for forking or thread-based processing.
Relies on beanstalkd being installed and maintained separately, adding operational overhead compared to database-backed queues like DelayedJob.
Workers like ThreadsOnFork are incompatible with Windows due to lack of fork, restricting deployment options and requiring alternative setups.
Job arguments must be JSON-serializable, preventing direct passing of complex Ruby objects and forcing ID-based references, which can be limiting.
Out-of-the-box, max_job_retries is set to 0, meaning jobs fail silently without retries unless explicitly configured, risking data loss.
Backburner is an open-source alternative to the following products:
Database based asynchronous priority queue system -- Extracted from Shopify
Multithreaded, Postgres-based, Active Job backend for Ruby on Rails.
Sucker Punch is a Ruby asynchronous processing library using concurrent-ruby, heavily influenced by Sidekiq and girl_friday.
A Ruby job queue that uses PostgreSQL's advisory locks for speed and reliability.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.