Sha256: 6e1f20abfe7ef243b19329f62609284baa379b0c5ba8424251efaf6a60fee8b8

Contents?: true

Size: 901 Bytes

Versions: 1

Compression:

Stored size: 901 Bytes

Contents

require 'delayed_job'

module Delayed
  module Workless
    module Scaler
  
      class Base
        def self.jobs
          Delayed::Job.all(:conditions => { :failed_at => nil })
        end
        
        def self.calculate_num_workers
          num_workers = self.workers
          if num_workers.class == Fixnum
            job_count = self.jobs.count
            if job_count > 500
              return 4 unless num_workers > 3
            elsif job_count > 200
              return 3 unless num_workers > 2
            elsif job_count > 50
              return 2 unless num_workers > 1
            elsif job_count > 0
              return 1 unless num_workers > 0
            end
          end
        end
      end

      module HerokuClient

        def client
          @client ||= ::Heroku::Client.new(ENV['HEROKU_USER'], ENV['HEROKU_PASSWORD'])
        end

      end

    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rcarvalho-workless-1.0.2.1 lib/workless/scalers/base.rb