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