如果您使用Phusion Passenger和PassengerSpawnMethod smart。
# config/initializers/phusion_passenger.rb
if defined?(PhusionPassenger)
PhusionPassenger.on_event(:starting_worker_process) do |forked|
if forked
# the following is *required* for Rails + "PassengerSpawnMethod smart".
if defined?(ActiveRecord::Base)
# force reconnect to "master" connection.
ActiveRecord::Base.connection_pool.disconnect!
# force reconnect to our octopus "slave" pools. This may include the "master" pool above.
if defined?(Octopus)
ActiveRecord::Base.connection_proxy.instance_variable_get(:@shards).each { |name, pool| pool.disconnect! }
end
end
end
end
end
這有:
# database.yml and shards.yml
reconnect: true
謝謝!我很驚訝你是八達通的創造者。你是對的。這是解決方案之一。但是,這個問題不能由乘客解決。它使用Nginx + Unicorn解決。 – Jaehyun 2011-02-28 04:41:03