Sha256: ba5a38e2e85093c2170eb0e4ca9f2ea97bb77269a47f3c9d4c586b28225f9cbf

Contents?: true

Size: 941 Bytes

Versions: 6

Compression:

Stored size: 941 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
            else
              return 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

6 entries across 6 versions & 1 rubygems

Version Path
rcarvalho-workless-1.0.2.9 lib/workless/scalers/base.rb
rcarvalho-workless-1.0.2.8 lib/workless/scalers/base.rb
rcarvalho-workless-1.0.2.7 lib/workless/scalers/base.rb
rcarvalho-workless-1.0.2.5 lib/workless/scalers/base.rb
rcarvalho-workless-1.0.2.3 lib/workless/scalers/base.rb
rcarvalho-workless-1.0.2.2 lib/workless/scalers/base.rb