Created
October 9, 2014 03:54
-
-
Save hecbuma/2cf00954a177e22d8e93 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
app_dir = "/app" | |
worker_processes 30 | |
working_directory app_dir | |
timeout 180 | |
listen "/tmp/unicorn.sock", :backlog => 1024 | |
pid app_dir + "/tmp:/unicorn.pid" | |
stderr_path "#{app_dir}/log/unicorn.stderr.log" | |
stdout_path "#{app_dir}/log/unicorn.stdout.log" | |
preload_app true | |
GC.respond_to?(:copy_on_write_friendly=) and GC.copy_on_write_friendly = true | |
before_exec do |server| | |
ENV["BUNDLE_GEMFILE"] = app_dir + "/Gemfile" | |
end | |
before_fork do |server, worker| | |
defined?(ActiveRecord::Base) and ActiveRecord::Base.connection.disconnect! | |
# kills old children after zero downtime deploy | |
old_pid = "#{server.config[:pid]}.oldbin" | |
if old_pid != server.pid | |
begin | |
sig = (worker.nr + 1) >= server.worker_processes ? :QUIT : :TTOU | |
Process.kill(sig, File.read(old_pid).to_i) | |
rescue Errno::ENOENT, Errno::ESRCH | |
end | |
end | |
sleep 1 | |
end | |
after_fork do |server, worker| | |
defined?(ActiveRecord::Base) and ActiveRecord::Base.establish_connection | |
defined?(Rails) and Rails.cache.respond_to?(:reconnect) and Rails.cache.reconnect | |
end | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment