我正在使用 Mongoid 3、Rails 3.2.9 和 Unicorn 进行生产。想设置一个 before_fork 和 after_fork 来连接到 mongodb,找到以下活动记录代码:
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
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
end
Mongoid(连接和断开)的相关代码是什么?
更新:
您实际上不需要这样做,因此对于查看此问题的人,请参阅:
http://mongoid.org/en/mongoid/docs/rails.html
“独角兽与乘客
在使用 Unicorn 或Passenger 时,每次使用app 预加载或智能生成时分叉子进程时,Mongoid 都会自动重新连接到主数据库。如果您在应用程序中手动执行此操作,则可以删除您的代码。”
虽然知道什么是等效的 Mongoid 代码仍然很有趣。