Module: HerokuResqueAutoScale::Scaler

Defined in:
lib/heroku-resque-workers-scaler/scaler.rb

Constant Summary collapse

@@heroku =
PlatformAPI.connect(ENV['HEROKU_API_KEY'])

Class Method Summary collapse

Class Method Details

.job_countObject



28
29
30
# File 'lib/heroku-resque-workers-scaler/scaler.rb', line 28

def job_count
  Resque.info[:pending].to_i
end

.workersObject



10
11
12
13
14
# File 'lib/heroku-resque-workers-scaler/scaler.rb', line 10

def workers
  return -1 unless authorized?
  result = @@heroku.formation.info(app_name, worker_name)
  result['quantity']
end

.workers=(quantity) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
# File 'lib/heroku-resque-workers-scaler/scaler.rb', line 16

def workers=(quantity)
  return unless authorized?

  quantity = quantity.to_i

  if safe_mode? and setting_this_number_of_workers_will_scale_down? quantity
    return unless all_jobs_have_been_processed?
  end
  result = @@heroku.formation.update(app_name, worker_name, { quantity: quantity })
  result['quantity'] == quantity
end

.working_job_countObject



32
33
34
# File 'lib/heroku-resque-workers-scaler/scaler.rb', line 32

def working_job_count
  Resque.info[:working].to_i
end