Module: Anycable::Server

Defined in:
lib/anycable/server.rb

Overview

Wrapper over GRPC server

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.grpc_serverObject (readonly)

Returns the value of attribute grpc_server.



10
11
12
# File 'lib/anycable/server.rb', line 10

def grpc_server
  @grpc_server
end

Class Method Details

.log_grpc!Object

Enable GRPC logging



30
31
32
# File 'lib/anycable/server.rb', line 30

def log_grpc!
  GRPC.define_singleton_method(:logger) { Anycable.logger }
end

.running?Boolean

Returns:

  • (Boolean)


25
26
27
# File 'lib/anycable/server.rb', line 25

def running?
  grpc_server&.running_state == :running
end

.startObject



12
13
14
15
16
17
18
# File 'lib/anycable/server.rb', line 12

def start
  log_grpc! if Anycable.config.log_grpc
  @grpc_server ||= build_server

  Anycable.logger.info "RPC server is listening on #{Anycable.config.rpc_host}"
  grpc_server.run_till_terminated
end

.stopObject



20
21
22
23
# File 'lib/anycable/server.rb', line 20

def stop
  return unless running?
  @grpc_server.stop
end