class ServerEngine::Worker

Attributes

logger[RW]
server[R]
worker_id[R]

Public Class Methods

new(server, worker_id) click to toggle source
# File lib/serverengine/worker.rb, line 24
def initialize(server, worker_id)
  @server = server
  @logger = @server.logger
  @worker_id = worker_id
end

Public Instance Methods

after_start() click to toggle source
# File lib/serverengine/worker.rb, line 54
def after_start
end
before_fork() click to toggle source
# File lib/serverengine/worker.rb, line 37
def before_fork
end
config() click to toggle source
# File lib/serverengine/worker.rb, line 33
def config
  @server.config
end
dump() click to toggle source
# File lib/serverengine/worker.rb, line 57
def dump
  Sigdump.dump unless config[:disable_sigdump]
end
install_signal_handlers() click to toggle source
# File lib/serverengine/worker.rb, line 61
def install_signal_handlers
  w = self
  SignalThread.new do |st|
    st.trap(Signals::GRACEFUL_STOP) { w.stop }
    st.trap(Signals::IMMEDIATE_STOP, 'SIG_DFL')

    st.trap(Signals::GRACEFUL_RESTART) { w.stop }
    st.trap(Signals::IMMEDIATE_RESTART, 'SIG_DFL')

    st.trap(Signals::RELOAD) {
      w.logger.reopen!
      w.reload
    }
    st.trap(Signals::DETACH) { w.stop }

    st.trap(Signals::DUMP) { w.dump }
  end
end
main() click to toggle source
# File lib/serverengine/worker.rb, line 80
def main
  run
end
reload() click to toggle source
# File lib/serverengine/worker.rb, line 51
def reload
end
run() click to toggle source
# File lib/serverengine/worker.rb, line 40
def run
  raise NoMethodError, "Worker#run method is not implemented"
end
spawn(process_manager) click to toggle source
# File lib/serverengine/worker.rb, line 44
def spawn(process_manager)
  raise NoMethodError, "Worker#spawn(process_manager) method is required for worker_type=spawn"
end
stop() click to toggle source
# File lib/serverengine/worker.rb, line 48
def stop
end