lib/sidekiq-heroku-scaler/strategy/latency.rb in sidekiq-heroku-scaler-0.3.3 vs lib/sidekiq-heroku-scaler/strategy/latency.rb in sidekiq-heroku-scaler-0.3.4
- old
+ new
@@ -16,16 +16,17 @@
@dec_count = (dec_count || 1).to_i
end
def increase?(sidekiq_worker)
sidekiq_worker.quantity < max_dynos_count &&
- sidekiq_worker.latency > max_latency &&
+ (sidekiq_worker.latency > max_latency ||
+ (sidekiq_worker.quantity.zero? && sidekiq_worker.latency.positive?)) &&
sidekiq_worker.queues_size > sidekiq_worker.quantity * sidekiq_worker.concurrency
end
def decrease?(sidekiq_worker)
- sidekiq_worker.latency < min_latency &&
- sidekiq_worker.quantity > min_dynos_count &&
+ sidekiq_worker.quantity > min_dynos_count &&
+ sidekiq_worker.latency < min_latency &&
(sidekiq_worker.quantity > 1 || !sidekiq_worker.jobs_running?)
end
def safe_quantity(quantity)
return min_dynos_count if quantity < min_dynos_count