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 29 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 47 def add_status(service, status) @status_mutex.synchronize { @statuses["#{service}"] = status } end
add_statuses(service_statuses = {})
click to toggle source
Adds health status for each service given within hash
# File src/ruby/pb/grpc/health/checker.rb, line 59 def add_statuses(service_statuses = {}) @status_mutex.synchronize do service_statuses.each_pair { |service, status| @statuses["#{service}"] = status } end end
check(req, _call)
click to toggle source
Implements the rpc IDL API method
# File src/ruby/pb/grpc/health/checker.rb, line 35 def check(req, _call) status = nil @status_mutex.synchronize do status = @statuses["#{req.service}"] end if status.nil? fail GRPC::BadStatus.new_status_exception(StatusCodes::NOT_FOUND) end HealthCheckResponse.new(status: status) end
clear_all()
click to toggle source
Clears alls the statuses.
# File src/ruby/pb/grpc/health/checker.rb, line 71 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 66 def clear_status(service) @status_mutex.synchronize { @statuses.delete("#{service}") } end
set_status_for_services(status, *services)
click to toggle source
Adds given health status for all given services
# File src/ruby/pb/grpc/health/checker.rb, line 52 def set_status_for_services(status, *services) @status_mutex.synchronize do services.each { |service| @statuses["#{service}"] = status } end end