class Grpc::Health::Checker
Checker is implementation of the schema-specified health checking service.
def add_status(service, status)
def add_status(service, status) @status_mutex.synchronize { @statuses["#{service}"] = status } end
def add_statuses(service_statuses = {})
def add_statuses(service_statuses = {}) @status_mutex.synchronize do service_statuses.each_pair { |service, status| @statuses["#{service}"] = status } end end
def check(req, _call)
def check(req, _call) status = nil @status_mutex.synchronize do status = @statuses["#{req.service}"] end if status.nil? fail GRPC::NotFound.new("Service is not found: #{req.service}") end HealthCheckResponse.new(status: status) end
def clear_all
def clear_all @status_mutex.synchronize { @statuses = {} } end
def clear_status(service)
def clear_status(service) @status_mutex.synchronize { @statuses.delete("#{service}") } end
def initialize
def initialize @statuses = {} @status_mutex = Mutex.new # guards access to @statuses end
def set_status_for_services(status, *services)
def set_status_for_services(status, *services) @status_mutex.synchronize do services.each { |service| @statuses["#{service}"] = status } end end