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