class ServerEngine::MultiSpawnServer
Public Class Methods
new(worker_module, load_config_proc={}, &block)
click to toggle source
Calls superclass method
# File lib/serverengine/multi_spawn_server.rb, line 25 def initialize(worker_module, load_config_proc={}, &block) if ServerEngine.windows? @pm = ProcessManager.new( auto_tick: false, graceful_kill_signal: Signals::GRACEFUL_STOP, immediate_kill_signal: false, enable_heartbeat: false, ) else @pm = ProcessManager.new( auto_tick: false, graceful_kill_signal: Signals::GRACEFUL_STOP, immediate_kill_signal: Signals::IMMEDIATE_STOP, enable_heartbeat: false, ) end super(worker_module, load_config_proc, &block) @reload_signal = @config[:worker_reload_signal] @unrecoverable_exit_codes = @config.fetch(:unrecoverable_exit_codes, []) @pm.command_sender = @command_sender end
Public Instance Methods
logger=(logger)
click to toggle source
Calls superclass method
# File lib/serverengine/multi_spawn_server.rb, line 55 def logger=(logger) super @pm.logger = logger end
run()
click to toggle source
Calls superclass method
# File lib/serverengine/multi_spawn_server.rb, line 49 def run super ensure @pm.close end
Private Instance Methods
reload_config()
click to toggle source
Calls superclass method
# File lib/serverengine/multi_spawn_server.rb, line 62 def reload_config super @pm.configure(@config, prefix: 'worker_') nil end
start_worker(wid)
click to toggle source
# File lib/serverengine/multi_spawn_server.rb, line 70 def start_worker(wid) w = create_worker(wid) w.before_fork begin pmon = w.spawn(@pm) ensure w.after_start end return MultiProcessServer::WorkerMonitor.new(w, wid, pmon, @reload_signal, unrecoverable_exit_codes: @unrecoverable_exit_codes) end
wait_tick()
click to toggle source
# File lib/serverengine/multi_spawn_server.rb, line 83 def wait_tick @pm.tick(0.5) end