Heroku Delayed-Job Auto-Scale

Deroku_dj_auto_scale allows automatic scaling of Delayed Job workers on Heroku (http://www.heroku.com/). The code heavily borrows from something I once came across on the internet. It also requires a custom version of delayed_job I created (https://github.com/joelbasson/delayed_job) which provides another hook signaling completion of the job. This change will hopefully be rolled into the original delayed_job from collectiveidea in the future.

Setup

Add the following to the class that will have auto-scalling DJ workers


  class Mailer < ActionMailer::Base
    extend HerokuDjAutoScale
  
    def my_function
    etc
    end
  
    ...
  end

You need to define the following variables in your config/environments/production.rb


ENV['HEROKU_USER'] = '[email protected]' 
ENV['HEROKU_PASS'] = 'yourherokupassword'
ENV['HEROKU_APP'] = 'yourappsnameinheroku'
ENV['USE_HEROKU_SCALING'] = 'true'

and in config/environments/development.rb set this to false


ENV['HEROKU_USER'] = 'doesntmatter' 
ENV['HEROKU_PASS'] = 'doesntmatter'
ENV['HEROKU_APP'] = 'doesntmatter'
ENV['USE_HEROKU_SCALING'] = 'false'

Enjoy