zerobearing2/heroku-qc-autoscale

View on GitHub
README.md

Summary

Maintainability
Test Coverage
Autoscale QueueClassic workers on Heroku
==================

Add to a Rails 3.x project to auto scale QueueClassic workers on heroku.

**WARNING: USE AT OWN RISK! THIS GEM IS CONSIDERED EXTREME ALPHA!**

[![Build Status](https://secure.travis-ci.org/zerobearing2/heroku-qc-autoscale.png)](http://travis-ci.org/zerobearing2/heroku-qc-autoscale)
[![Code Climate](https://codeclimate.com/badge.png)](https://codeclimate.com/github/zerobearing2/heroku-qc-autoscale)

Usage
-----

Install as gem

    gem install heroku-qc-autoscale

Add to Gemfile

    gem "heroku-qc-autoscale"


Create config/initializers/qc_autoscale.rb

    Autoscale.config do |c|
      c.api_key = ENV['HEROKU_API_KEY']
      c.app     = ENV['AUTOSCALE_APP']
      c.min     = ENV['AUTOSCALE_MIN']
      c.scale   = [1, 15, 30, 40, 50]
    end

    Autoscale.activate! if Rails.env.production?

Queue jobs as normal with QueueClassic. Based on your scale table, it will recalculate the
workers required after each QC#enqueue, and QC#delete.

    QC.enqueue("Time.now")


TODO
----

 - remove Rails dependencies
 - remove ActiveSupport dependencies
 - when queue is emptied, scale workers to "min" after X time elapses.
 - rake task to scale workers to "min" manually
 - enable/disable scaling at runtime


Meta
----

Released under the [MIT license](http://www.opensource.org/licenses/mit-license.php).