class Grpc::Health::Checker

Checker is implementation of the schema-specified health checking service.

Constants

HealthCheckResponse
StatusCodes

Constants representing the status codes or grpc_status_code in status.h

Public Class Methods

new() click to toggle source

Initializes the statuses of participating services

# File src/ruby/pb/grpc/health/checker.rb, line 44
def initialize
  @statuses = {}
  @status_mutex = Mutex.new  # guards access to @statuses
end

Public Instance Methods

add_status(service, status) click to toggle source

Adds the health status for a given service.

# File src/ruby/pb/grpc/health/checker.rb, line 60
def add_status(service, status)
  @status_mutex.synchronize { @statuses["#{service}"] = status }
end
check(req, _call) click to toggle source

Implements the rpc IDL API method

# File src/ruby/pb/grpc/health/checker.rb, line 50
def check(req, _call)
  status = nil
  @status_mutex.synchronize do
    status = @statuses["#{req.service}"]
  end
  fail GRPC::BadStatus, StatusCodes::NOT_FOUND if status.nil?
  HealthCheckResponse.new(status: status)
end
clear_all() click to toggle source

Clears alls the statuses.

# File src/ruby/pb/grpc/health/checker.rb, line 70
def clear_all
  @status_mutex.synchronize { @statuses = {} }
end
clear_status(service) click to toggle source

Clears the status for the given service.

# File src/ruby/pb/grpc/health/checker.rb, line 65
def clear_status(service)
  @status_mutex.synchronize { @statuses.delete("#{service}") }
end