Class: SidekiqHerokuScaler::Strategy::Latency

Inherits:
Object
  • Object
show all
Defined in:
lib/sidekiq-heroku-scaler/strategy/latency.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(min_dynos_count:, max_dynos_count:, max_latency:, min_latency:, inc_count: nil, dec_count: nil) ⇒ Latency

Returns a new instance of Latency.



8
9
10
11
12
13
14
15
16
17
# 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

Instance Attribute Details

#dec_countObject (readonly)

Returns the value of attribute dec_count.



6
7
8
# File 'lib/sidekiq-heroku-scaler/strategy/latency.rb', line 6

def dec_count
  @dec_count
end

#inc_countObject (readonly)

Returns the value of attribute inc_count.



6
7
8
# File 'lib/sidekiq-heroku-scaler/strategy/latency.rb', line 6

def inc_count
  @inc_count
end

Instance Method Details

#decrease?(sidekiq_worker) ⇒ Boolean

Returns:

  • (Boolean)


25
26
27
# 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) ⇒ Boolean

Returns:

  • (Boolean)


19
20
21
22
23
# 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