4

我只是偶然发现了 mongodb-user 列表上的一个姿势,其中讨论了将 mongoDB 与 MongoMapper 一起使用时的乘客和分叉。

我只是想提醒一下,如果 Rails 开发人员将 MongoDB 与Passenger 一起使用,他们需要调整他们的“environment.rb”。

默认情况下,Passenger 使用 fork() 生成 Ruby 进程。而且,由于 fork () 共享文件描述符,Rails 应用程序必须在新的“进程”中重新打开与 MongoDB 的连接。

http://groups.google.com/group/mongodb-user/browse_thread/thread/f31e2d23de38136a

任何人都知道 mongoDB 和乘客是否仍然存在问题,或者为乘客提供 mongoDB-rails-application 的最佳方式是什么?

4

1 回答 1

1

我认为这个“问题”仍然存在,但我认为修复是在您链接到的线程(第一条消息中的链接)和 John Nunemaker 的要点中提供的(http://gist.github.com/ 232953)。

我相信相关的信息在下面的代码块中,你将把它放在初始化器中:

if defined?(PhusionPassenger)
  PhusionPassenger.on_event(:starting_worker_process) do |forked|
    # if using older than 0.6.5 of MM then you want database instead of connection
    # MongoMapper.database.connect_to_master if forked
    MongoMapper.connection.connect_to_master if forked
  end
end
于 2010-01-20T12:59:24.813 回答