Project

woodhouse

0.01
No commit activity in last 3 years
No release in over 3 years
An AMQP-based background worker system for Ruby designed to make managing heterogenous tasks relatively easy. The use case for Woodhouse is for reliable and sane performance in situations where jobs on a single queue may vary significantly in length. The goal is to permit large numbers of quick jobs to be serviced even when many slow jobs are in the queue. A secondary goal is to provide a sane way for jobs on a given queue to be given special priority or dispatched to a server more suited to them. Clients (i.e., your application) may be using either Ruby 1.9 in any VM.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

>= 0
>= 0
>= 0
~> 1.3.1

Runtime

~> 0.9.8
~> 0.1
~> 0.15
~> 1.8
 Project Readme

Woodhouse

Build Status

A RabbitMQ-based background worker system for Ruby designed to make managing heterogenous tasks relatively easy.

The use case for Woodhouse is for reliable and sane performance in situations where jobs on a single queue may vary significantly in length. The goal is to permit large numbers of quick jobs to be serviced even when many slow jobs are in the queue. A secondary goal is to provide a sane way for jobs on a given queue to be given special priority or dispatched to a server more suited to them.

Woodhouse 1.0, located in the 1-0-stable branch, is production-ready and stable for Ruby 1.9. The master branch includes development on Woodhouse 2.0, which targets Ruby 2.0 or later.

Please look at the wiki for documentation.

Features

  • Configurable worker sets per server
  • Configurable number of threads per worker
  • Segmenting a single queue among multiple workers based on job characteristics (using AMQP header exchanges)
  • Extension system
  • Progress reporting on jobs with the progress extension
  • New Relic background job reporting with the new_relic extension
  • Live status reporting with the status extension
  • Job dispatch and execution middleware stacks

Upcoming

  • Live reconfiguration of workers -- add or remove workers across one or more nodes without restarting
  • Persistent configuration changes -- configuration changes saved to a data store and kept across deploys
  • Web interface

Acknowledgements

Woodhouse originated in a substantially modified version of the Workling background worker system, although all code has since been replaced.

This library was developed for CrowdCompass and was released as open source with their permission.