class RailsAutoscaleAgent::Config
Constants
- DEFAULT_WORKER_ADAPTERS
Attributes
addon_name[RW]
api_base_url[RW]
debug[RW]
debug?[RW]
dev_mode[RW]
dev_mode?[RW]
dyno[RW]
latency_for_active_jobs[RW]
logger[RW]
max_request_size[RW]
quiet[RW]
quiet?[RW]
report_interval[RW]
sidekiq_latency_for_active_jobs[RW]
track_long_running_jobs[RW]
worker_adapters[RW]
Public Class Methods
new()
click to toggle source
# File lib/rails_autoscale_agent/config.rb, line 18 def initialize @worker_adapters = prepare_worker_adapters # Allow the add-on name to be configured - needed for testing @addon_name = ENV['RAILS_AUTOSCALE_ADDON'] || 'RAILS_AUTOSCALE' @api_base_url = ENV["#{@addon_name}_URL"] @dev_mode = ENV['RAILS_AUTOSCALE_DEV'] == 'true' @debug = dev_mode? || ENV['RAILS_AUTOSCALE_DEBUG'] == 'true' @track_long_running_jobs = ENV['RAILS_AUTOSCALE_LONG_JOBS'] == 'true' @max_request_size = 100_000 # ignore request payloads over 100k since they skew the queue times @report_interval = 10 # this default will be overwritten during Reporter#register! @logger ||= defined?(Rails) ? Rails.logger : ::Logger.new(STDOUT) @dyno = dev_mode? ? 'dev.1' : ENV['DYNO'] end
Public Instance Methods
ignore_large_requests?()
click to toggle source
# File lib/rails_autoscale_agent/config.rb, line 37 def ignore_large_requests? @max_request_size end
to_s()
click to toggle source
# File lib/rails_autoscale_agent/config.rb, line 33 def to_s "#{@dyno}##{Process.pid}" end
Private Instance Methods
prepare_worker_adapters()
click to toggle source
# File lib/rails_autoscale_agent/config.rb, line 47 def prepare_worker_adapters adapter_names = (ENV['RAILS_AUTOSCALE_WORKER_ADAPTER'] || DEFAULT_WORKER_ADAPTERS).split(',') adapter_names.map do |adapter_name| require "rails_autoscale_agent/worker_adapters/#{adapter_name}" adapter_constant_name = adapter_name.capitalize.gsub(/(?:_)(.)/i) { $1.upcase } WorkerAdapters.const_get(adapter_constant_name).instance end end