Class: Autoscaler::Sidekiq::Activity

Inherits:
Object
  • Object
show all
Defined in:
lib/autoscaler/sidekiq/activity.rb

Overview

Tracks activity timeouts using Sidekiq’s redis connection

Instance Method Summary collapse

Constructor Details

#initialize(timeout, redis = ::Sidekiq.method(:redis)) ⇒ Activity

Returns a new instance of Activity.

Parameters:

  • timeout (Numeric)

    number of seconds to wait before shutdown



8
9
10
11
# File 'lib/autoscaler/sidekiq/activity.rb', line 8

def initialize(timeout, redis = ::Sidekiq.method(:redis))
  @timeout = timeout
  @redis   = redis
end

Instance Method Details

#idle!(queue) ⇒ Object

Record that a queue is idle and timed out - mostly for test support

Parameters:

  • queue (String)


21
22
23
# File 'lib/autoscaler/sidekiq/activity.rb', line 21

def idle!(queue)
  active_at queue, Time.now - timeout*2
end

#idle?(queues) ⇒ boolean

Have the watched queues timed out?

Parameters:

  • queues (Array[String])

    list of queues to monitor to determine if there is work left

Returns:

  • (boolean)


28
29
30
# File 'lib/autoscaler/sidekiq/activity.rb', line 28

def idle?(queues)
  idle_time(queues) > timeout
end

#working!(queue) ⇒ Object

Record that a queue has activity

Parameters:

  • queue (String)


15
16
17
# File 'lib/autoscaler/sidekiq/activity.rb', line 15

def working!(queue)
  active_at queue, Time.now
end