class HerokuAutoScale::Manager
Constants
- MNGR_ATTRIBUTES
Public Class Methods
new(options={})
click to toggle source
# File lib/heroku_auto_scale/manager.rb, line 21 def initialize(options={}) options = HerokuAutoScale.options.merge(options) Configuration::CONFIGURATION_OPTIONS.each do |key| send("#{key}=", options[key]) end init_redis_operations init_heroku_operations end
Public Instance Methods
calculate_number_of_needed_dynos()
click to toggle source
# File lib/heroku_auto_scale/manager.rb, line 60 def calculate_number_of_needed_dynos current_jobs = get_number_of_jobs_inside_queue dynos = (current_jobs.to_f / scaling_step.to_f).ceil scale_to = [dynos, max_dynos].min scale_to = [scale_to, min_dynos].max end
get_number_of_jobs_inside_queue()
click to toggle source
# File lib/heroku_auto_scale/manager.rb, line 31 def get_number_of_jobs_inside_queue redis_operations.check_queue_for_jobs(@queue_name) end
manage_queue()
click to toggle source
# File lib/heroku_auto_scale/manager.rb, line 55 def manage_queue scale_to = calculate_number_of_needed_dynos heroku_operations.execute_dyno_scale(process_name, scale_to) end
set_max_dynos(max_dynos)
click to toggle source
# File lib/heroku_auto_scale/manager.rb, line 47 def set_max_dynos(max_dynos) @max_dynos = max_dynos end
set_min_dynos(min_dynos)
click to toggle source
# File lib/heroku_auto_scale/manager.rb, line 43 def set_min_dynos(min_dynos) @min_dynos = min_dynos end
set_process_name(process_name)
click to toggle source
# File lib/heroku_auto_scale/manager.rb, line 35 def set_process_name(process_name) @process_name = process_name end
set_queue_name(queue_name)
click to toggle source
# File lib/heroku_auto_scale/manager.rb, line 39 def set_queue_name(queue_name) @queue_name = queue_name end
set_scaling_step(scaling_step)
click to toggle source
# File lib/heroku_auto_scale/manager.rb, line 51 def set_scaling_step(scaling_step) @scaling_step = scaling_step end
Private Instance Methods
init_heroku_operations()
click to toggle source
# File lib/heroku_auto_scale/manager.rb, line 73 def init_heroku_operations @heroku_operations = HerokuAutoScale:: HerokuOperations.new( heroku_oauth_token, heroku_app_name ) end
init_redis_operations()
click to toggle source
# File lib/heroku_auto_scale/manager.rb, line 69 def init_redis_operations @redis_operations = HerokuAutoScale::RedisOperations.new(redis_url) end