class Uc::Unicorn::GradualShutdown
Attributes
server[R]
worker[R]
Public Class Methods
new(server, worker)
click to toggle source
# File lib/uc/unicorn/gradual_shutdown.rb, line 14 def initialize(server, worker) @server = server @worker = worker end
Public Instance Methods
id()
click to toggle source
# File lib/uc/unicorn/gradual_shutdown.rb, line 49 def id @id ||= (worker.nr + 1) end
log_kill_error(e)
click to toggle source
# File lib/uc/unicorn/gradual_shutdown.rb, line 44 def log_kill_error(e) stderr.info "error sending kill signal #{id}| #{e.class} #{e.message}" event_stream.warn "error while stopping worker #{worker.nr + 1}, #{e.class}" end
run()
click to toggle source
# File lib/uc/unicorn/gradual_shutdown.rb, line 19 def run return if not (server && worker) return if not restart? shutdown_old_master end
send_signal()
click to toggle source
# File lib/uc/unicorn/gradual_shutdown.rb, line 36 def send_signal Process.kill(sig, File.read(old_pid).to_i) return true rescue => e log_kill_error e return false end
shutdown_old_master()
click to toggle source
# File lib/uc/unicorn/gradual_shutdown.rb, line 25 def shutdown_old_master event_stream.debug "stopping old worker #{id}" if send_signal event_stream.debug "stopped old worker #{id}" end end
sig()
click to toggle source
# File lib/uc/unicorn/gradual_shutdown.rb, line 32 def sig (worker.nr + 1) >= server.worker_processes ? :QUIT : :TTOU end