Created
July 14, 2011 15:28
-
-
Save zefer/1082673 to your computer and use it in GitHub Desktop.
Patch HireFire so worker auto-scaling works on the Beta Heroku Cedar stack
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# hopefully a temporary patch so HireFire will run on the Heroku Cedar stack | |
# NB: the worker type is hard-coded as "worker" below, this must correlate to the type in Procfile | |
# NB: ENV['APP_NAME'] must be defined (e.g. 'heroku config:add APP_NAME=myherokuappname') | |
# using ps & ps_scale instead of info & set_workers | |
class HireFire::Environment::Heroku | |
private | |
def workers(amount = nil) | |
if amount.nil? | |
# return client.info(ENV['APP_NAME'])[:workers].to_i | |
return client.ps(ENV['APP_NAME']).select {|p| p['process'] =~ /worker.[0-9]+/}.length | |
end | |
# client.set_workers(ENV['APP_NAME'], amount) | |
return client.ps_scale(ENV['APP_NAME'], {"type" => "worker", "qty" => amount}) | |
rescue RestClient::Exception | |
HireFire::Logger.message("Worker query request failed with #{ $!.class.name } #{ $!.message }") | |
nil | |
end | |
end | |
# quick override to ensure that HireFire is activated on Heroku. The change is that it is looking for | |
# ::Rails.env.production? instead of ENV.include?('HEROKU_UPID') | |
module HireFire | |
module Environment | |
module ClassMethods | |
def environment | |
@environment ||= HireFire::Environment.const_get( | |
if environment = HireFire.configuration.environment | |
environment.to_s.camelize | |
else | |
::Rails.env.production? ? 'Heroku' : 'Noop' | |
end | |
).new | |
end | |
end | |
end | |
end |
ptagell
commented
Dec 26, 2011
via email
Cheers! Will do
…On 27/12/2011, at 12:31 AM, Joe ***@***.*** wrote:
Hi @ptagell use `heroku ps` to see what's running. `heroku scale` is for changing the number of dynos, that is a usage example you are referring to.
---
Reply to this email directly or view it on GitHub:
https://gist.github.com/1082673
Is this still up to date? I can't seem to get it working...
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment