preload_app in unicorn

This commit is contained in:
danielgrippi 2012-01-27 11:42:51 -08:00
parent ff71bc5a44
commit 95b7e30e00

View file

@ -7,7 +7,7 @@ rails_env = ENV['RAILS_ENV'] || 'development'
worker_processes 1 worker_processes 1
## Load the app before spawning workers ## Load the app before spawning workers
#preload_app true preload_app true
# How long to wait before killing an unresponsive worker # How long to wait before killing an unresponsive worker
timeout 30 timeout 30
@ -23,7 +23,12 @@ end
before_fork do |server, worker| before_fork do |server, worker|
# If using preload_app, enable this line # If using preload_app, enable this line
#ActiveRecord::Base.disconnect! ActiveRecord::Base.connection.disconnect!
# disconnect redis if in use
if !AppConfig.single_process_mode?
Resque.redis.client.disconnect
end
old_pid = '/var/run/diaspora/diaspora.pid.oldbin' old_pid = '/var/run/diaspora/diaspora.pid.oldbin'
if File.exists?(old_pid) && server.pid != old_pid if File.exists?(old_pid) && server.pid != old_pid
@ -38,7 +43,17 @@ end
after_fork do |server, worker| after_fork do |server, worker|
# If using preload_app, enable this line # If using preload_app, enable this line
# ActiveRecord::Base.establish_connection ActiveRecord::Base.establish_connection
# copy pasta from resque.rb because i'm a bad person
if !AppConfig.single_process_mode?
if redis_to_go = ENV["REDISTOGO_URL"]
uri = URI.parse(redis_to_go)
Resque.redis = Redis.new(:host => uri.host, :port => uri.port, :password => uri.password)
elsif AppConfig[:redis_url]
Resque.redis = Redis.new(:host => AppConfig[:redis_url], :port => 6379)
end
end
# Enable this line to have the workers run as different user/group # Enable this line to have the workers run as different user/group
#worker.user(user, group) #worker.user(user, group)