Skip to content

Instantly share code, notes, and snippets.

@pglombardo
Created June 28, 2013 14:08
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pglombardo/5884933 to your computer and use it in GitHub Desktop.
Save pglombardo/5884933 to your computer and use it in GitHub Desktop.
TraceView and the Unicorn Webserver: Disconnect/Reconnect Example
worker_processes Integer(ENV["WEB_CONCURRENCY"] || 3)
timeout 15
preload_app true
before_fork do |server, worker|
Signal.trap 'TERM' do
puts 'Unicorn master intercepting TERM and sending myself QUIT instead'
Process.kill 'QUIT', Process.pid
end
defined?(ActiveRecord::Base) and
ActiveRecord::Base.connection.disconnect!
defined?(::Oboe) and
::Oboe.disconnect!
end
after_fork do |server, worker|
Signal.trap 'TERM' do
puts 'Unicorn worker intercepting TERM and doing nothing. Wait for master to send QUIT'
end
defined?(ActiveRecord::Base) and
ActiveRecord::Base.establish_connection
defined?(::Oboe) and
::Oboe.reconnect!
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment