Sha256: 803d5a691c50c1906122594f977f5e3edb31222ce7ab10c2e00c3f968f710502
Contents?: true
Size: 1.46 KB
Versions: 3
Compression:
Stored size: 1.46 KB
Contents
require 'ostruct' require 'thread' module Protobuf module Rpc class ZmqRunner include ::Protobuf::Logging def initialize(options) @options = case when options.is_a?(OpenStruct) then options.marshal_dump when options.respond_to?(:to_hash) then options.to_hash else fail "Cannot parser Zmq Server - server options" end end def run @server = ::Protobuf::Rpc::Zmq::Server.new(@options) register_signals @server.run do yield if block_given? end end def running? @server.try :running? end def stop @server.try :stop end private def register_signals trap(:TRAP) do ::Thread.list.each do |thread| logger.info do <<-THREAD_TRACE #{thread.inspect}: #{thread.backtrace.try(:join, $INPUT_RECORD_SEPARATOR)}" THREAD_TRACE end end end trap(:TTIN) do @server.add_worker logger.info { "Increased worker size to: #{@server.total_workers}" } end trap(:TTOU) do logger.info { "Current worker size: #{@server.workers.size}" } logger.info { "Current busy worker size: #{@server.busy_worker_count}" } end end end end end
Version data entries
3 entries across 3 versions & 2 rubygems
Version | Path |
---|---|
prepor-protobuf-3.5.1 | lib/protobuf/rpc/servers/zmq_runner.rb |
prepor-protobuf-3.5.0 | lib/protobuf/rpc/servers/zmq_runner.rb |
protobuf-3.5.0 | lib/protobuf/rpc/servers/zmq_runner.rb |