Created
November 28, 2011 20:01
-
-
Save leshill/1401792 to your computer and use it in GitHub Desktop.
Unicorn config for cedar stack on Heroku.
This file contains 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
web: bundle exec unicorn -p $PORT -c ./config/unicorn.rb |
This file contains 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
# config/unicorn.rb | |
# See comment by @paulelliott | |
worker_processes 3 | |
timeout 30 | |
preload_app true | |
before_fork do |server, worker| | |
# Replace with MongoDB or whatever | |
if defined?(ActiveRecord::Base) | |
ActiveRecord::Base.connection.disconnect! | |
Rails.logger.info('Disconnected from ActiveRecord') | |
end | |
# If you are using Redis but not Resque, change this | |
if defined?(Resque) | |
Resque.redis.quit | |
Rails.logger.info('Disconnected from Redis') | |
end | |
end | |
after_fork do |server, worker| | |
# Replace with MongoDB or whatever | |
if defined?(ActiveRecord::Base) | |
ActiveRecord::Base.establish_connection | |
Rails.logger.info('Connected to ActiveRecord') | |
end | |
# If you are using Redis but not Resque, change this | |
if defined?(Resque) | |
Resque.redis = ENV['REDIS_URI'] | |
Rails.logger.info('Connected to Redis') | |
end | |
end |
What would it look like if you were using Mongo, Postgres/ActiveRecord AND Resque? I'm having weird EOF issues with Resque/Postgres and Heroku, and I'm wondering if my config here is part of the issue.
@leshill, there is a comment # If you are using Redis but not Resque, change this
, what should it be changed to if you are just using Redis?
My thought was it would look something like the below text. However, the Redis.current.quit
throws errors because .current
tries to connect to the default localhost (which doesn't exist if using an external Redis server).
before_fork do |server, worker|
if defined?(Redis)
# this throws errors
# Redis.current tries to connect localhost
Redis.current.quit
end
end
after_fork do |server, worker|
if defined?(Redis)
Redis.current = Redis.new(url: ENV['REDIS_URI'])
end
end
@harlow Did you figure the Redis config out. Im using Redistogo without Resque and can't find much in the way of configs like that.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
@premjg, you can find the same documentation for Mongoid 2.x, here : http://two.mongoid.org/docs/rails/railties.html