module Resque::Plugins::ScalingCanary

Public Class Methods

config() { |Config| ... } click to toggle source
# File lib/resque/plugins/resque_heroku_scaling_canary.rb, line 16
def self.config
  yield Config
end

Public Instance Methods

after_enqueue_ensure_heroku_workers(*args) click to toggle source
# File lib/resque/plugins/resque_heroku_scaling_canary.rb, line 8
def after_enqueue_ensure_heroku_workers(*args)
  return if Config.scaling_disabled?
  n = self.respond_to?(:minimum_workers_needed) ? self.minimum_workers_needed : 1
  return if Config.heroku_client.info(Config.heroku_app)[:workers].to_i >= n
  Config.heroku_client.ps_scale(Config.heroku_app, :type => "worker", :qty => n)
  Resque.enqueue(CanaryJob, Config.polling_interval) if CanaryJob.canary_jobs_outstanding == 0
end