# Read about unicorn workers here:
# http://doc.gitlab.com/ee/install/requirements.html#unicorn-workers
#
worker_processes Integer(ENV['WORKER_PROCESSES'])
timeout Integer(ENV['TIMEOUT'])
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!
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
end