class SidekiqHerokuScaler::Strategy::Latency
Attributes
dec_count[R]
inc_count[R]
max_dynos_count[R]
max_latency[R]
min_dynos_count[R]
min_latency[R]
Public Class Methods
new(min_dynos_count:, max_dynos_count:, max_latency:, min_latency:, inc_count: nil, dec_count: nil)
click to toggle source
# File lib/sidekiq-heroku-scaler/strategy/latency.rb, line 8 def initialize(min_dynos_count:, max_dynos_count:, max_latency:, min_latency:, inc_count: nil, dec_count: nil) @min_dynos_count = min_dynos_count @max_dynos_count = max_dynos_count @max_latency = max_latency @min_latency = min_latency @inc_count = (inc_count || 1).to_i @dec_count = (dec_count || 1).to_i end
Public Instance Methods
decrease?(sidekiq_worker)
click to toggle source
# File lib/sidekiq-heroku-scaler/strategy/latency.rb, line 25 def decrease?(sidekiq_worker) sidekiq_worker.latency < min_latency && sidekiq_worker.quantity > min_dynos_count end
increase?(sidekiq_worker)
click to toggle source
# File lib/sidekiq-heroku-scaler/strategy/latency.rb, line 19 def increase?(sidekiq_worker) sidekiq_worker.quantity < max_dynos_count && sidekiq_worker.latency > max_latency && sidekiq_worker.queues_size > sidekiq_worker.quantity * sidekiq_worker.concurrency end
safe_quantity(quantity)
click to toggle source
# File lib/sidekiq-heroku-scaler/strategy/latency.rb, line 29 def safe_quantity(quantity) return 1 if quantity <= 0 quantity > max_dynos_count ? max_dynos_count : quantity end