
Untitled
By: a guest on
May 28th, 2012 | syntax:
None | size: 0.58 KB | hits: 16 | expires: Never
# Inspired by http://verboselogging.com/2010/07/30/auto-scale-your-resque-workers-on-heroku
module HerokuAutoscale
module Scaler
class << self
@@heroku = Heroku::Client.new(ENV['HEROKU_USER'], ENV['HEROKU_PASS'])
def workers
@@heroku.info(ENV['HEROKU_APP'])[:workers].to_i
end
def workers=(qty)
@@heroku.set_workers(ENV['HEROKU_APP'], qty)
end
def job_count
Delayed::Job.count
end
end
end
def after_perform_scale_down
Scaler.workers = 0
end
def after_enqueue_scale_up
Scaler.workers = 1
end
end