class ThriftServer::ThreadedServer
Attributes
port[RW]
Public Instance Methods
log(logger)
click to toggle source
# File lib/thrift_server/threaded_server.rb, line 28 def log(logger) subscribe LogSubscriber.new(logger) subscribe ThriftServer::LogSubscriber.new(logger) end
metrics(statsd)
click to toggle source
# File lib/thrift_server/threaded_server.rb, line 33 def metrics(statsd) subscribe ServerMetricsSubscriber.new(statsd) subscribe RpcMetricsSubscriber.new(statsd) end
protocol()
click to toggle source
# File lib/thrift_server/threaded_server.rb, line 38 def protocol @protocol_factory end
serve()
click to toggle source
NOTE: this is a copy of the upstream code with instrumentation added.
# File lib/thrift_server/threaded_server.rb, line 57 def serve begin @server_transport.listen loop do client = @server_transport.accept remote_address = client.handle.remote_address publish :server_connection_opened, remote_address trans = @transport_factory.get_transport(client) prot = @protocol_factory.get_protocol(trans) Thread.new(prot, trans) do |p, t| begin loop do @processor.process(p, p) end rescue Thrift::TransportException, Thrift::ProtocolException ensure publish :server_connection_closed, remote_address t.close end end end ensure @server_transport.close end end
server_transport()
click to toggle source
# File lib/thrift_server/threaded_server.rb, line 46 def server_transport @server_transport end
start(dry_run: false)
click to toggle source
# File lib/thrift_server/threaded_server.rb, line 50 def start(dry_run: false) publish :server_start, self serve unless dry_run end
transport()
click to toggle source
# File lib/thrift_server/threaded_server.rb, line 42 def transport @transport_factory end