class Heartcheck::Checks::Cache

Check for a cache service Base is set in heartcheck gem

Public Instance Methods

validate() click to toggle source

validate each service

@retun [void]

# File lib/heartcheck/checks/cache.rb, line 9
def validate
  services.each do |service|
    connection = service[:connection]

    append_error(service[:name], :set) unless set?(connection)
    append_error(service[:name], :get) unless get?(connection)
    append_error(service[:name], :delete) unless delete?(connection)
  end
end

Private Instance Methods

custom_error(name, key_error) click to toggle source

customize the error message It's called in Heartcheck::Checks::Base#append_error

@param name [String] An identifier of service @param key_error [Symbol] name of action

@return [void]

# File lib/heartcheck/checks/cache.rb, line 61
def custom_error(name, key_error)
  @errors << "#{name} fails to #{key_error}"
end
delete?(con) click to toggle source

test if can delete on cache

@param con [Cache] an instance of cache

@return [Bollean]

# File lib/heartcheck/checks/cache.rb, line 48
def delete?(con)
  con.delete(unique_check_key)
rescue
  false
end
get?(con) click to toggle source

test if can read on cache

@param con [Cache] an instance of cache

@return [Bollean]

# File lib/heartcheck/checks/cache.rb, line 37
def get?(con)
  con.get(unique_check_key) == 'heartcheck'
rescue
  false
end
set?(con) click to toggle source

test if can write on cache

@param con [Cache] an instance of cache

@return [Bollean]

# File lib/heartcheck/checks/cache.rb, line 26
def set?(con)
  con.set(unique_check_key, 'heartcheck')
rescue
  false
end
unique_check_key() click to toggle source

generate an unique redis key It's necessary to run concurrent application instances/checks using a shared memcache

@return [String]

# File lib/heartcheck/checks/cache.rb, line 70
def unique_check_key
  @unique_check_key ||= SecureRandom.hex
end