我正在使用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
"独角兽和乘客"
当使用独角兽或乘客时,在使用应用程序预加载或智能生成子进程时,每次fork子进程时,Mongoid将自动重新连接到主数据库。如果您手动在应用程序中执行此操作,则可以删除您的代码。
尽管知道相应的Mongoid代码仍然很有趣。