Jobby Rails - Efficient background tasks in Rails

Jobby Rails is a lightweight interface to Jobby, a gem which allows many concurrent ‘jobs’ to be run asynchronously from one another.

Jobby Rails provides everything you need to pass on long running tasks, to Jobby to be executed. What makes this solution unique to all the other is that (up to a specified maximum of child processes), Jobby executes your tasks in parallel.

Jobs and Freelancers (See the Documentation) are given your Rails environment and can access all of your Models and so on. Jobby (and Jobby Rails) is COW Friendly if your Ruby Interpreter supports it.

Jobby and Jobby Rails was developed to replace the old version of BackgrounDRb which we were using at PCCL to handle our background tasks. We needed something that could serve as a drop-in replacement but still perform the following actions:

  • Start new jobs straight away
  • Run jobs in parallel up to a maximum number of children
  • Queue remaining jobs and process them in order
  • Reliably keep logs
  • Be resilient and gracefully recover form errors
  • Communicate with your application without DRB

Development is being being tracked over at its GitHub Repository, and the project’s documentation will be posted up on the project’s GitHub Wiki.

The latest version of the plugin is Rails 2.3 compatible and has been extracted and cleaned up a little form the version we need at PCCL. Please track any issues over at GitHub.