class Quietus::ActiveServer

Attributes

instance_id[R]
respect_grace_period[R]
status[R]

Public Class Methods

new(auto_scaling_instance, respect_grace_period = true) click to toggle source
# File lib/quietus/active_server.rb, line 5
def initialize(auto_scaling_instance, respect_grace_period = true)
  @respect_grace_period  = respect_grace_period
  @auto_scaling_instance = auto_scaling_instance

  server &Proc.new
end

Private Instance Methods

server(&proc) click to toggle source
# File lib/quietus/active_server.rb, line 14
def server(&proc)
  loop do
    new_status = proc.call
    if (new_status != status) && ENV['APP_ENV'] == 'production'
      update new_status
    end
  end
end
update(status) click to toggle source
# File lib/quietus/active_server.rb, line 23
def update(status)
  @auto_scaling_instance.set_health(
    status ? 'Healthy' : 'Unhealthy',
    :should_respect_grace_period => respect_grace_period
  )
end