Rails的,Mongoid与独角兽配置为的Heroku(Rails, Mongoid & Unic

2019-08-17 04:59发布

我使用Mongoid 3,使用Rails 3.2.9和独角兽进行生产。 想建立一个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

“独角兽和乘客

当使用麒麟或乘客,每个子进程正在使用的应用程序预加载或智能产卵时分叉的时候,Mongoid将自动重新连接到主数据库。 如果你在你的应用程序这样做手工,你可能会删除你的代码“。

虽然它仍然是有趣的,知道什么是等价Mongoid代码。

Answer 1:

实际上,你不需要做这个,所以人来查看此问题,请参阅:

http://mongoid.org/en/mongoid/docs/rails.html

“独角兽和乘客

当使用麒麟或乘客,每个子进程正在使用的应用程序预加载或智能产卵时分叉的时候,Mongoid将自动重新连接到主数据库。 如果你在你的应用程序这样做手工,你可能会删除你的代码“。

虽然它仍然是有趣的,知道什么是等价Mongoid代码。



Answer 2:

什么::Mongoid.default_session.connect ::Mongoid.default_session.disconnect



Answer 3:

https://docs.mongodb.com/mongoid/current/tutorials/mongoid-configuration/#usage-with-forking-servers

在mongodb.com文档说after_fork和before_fork为麒麟或乘客是必需的。

这可能最近更改。 这是7.0 mongoid文档



文章来源: Rails, Mongoid & Unicorn config for Heroku