我偶然发现mongodb-user列表上的一个冒充,当mongoDB与MongoMapper一起使用时,有关乘客和分叉的讨论。
我只是想提醒一下,Rails开发人员需要调整他们的 'environment.rb',如果他们将MongoDB与Passenger一起使用。
默认情况下,Passenger使用fork()生成Ruby进程。并且,作为分叉 ()共享文件描述符,Rails应用程序必须重新打开连接 在新的“过程”中对MongoDB。
http://groups.google.com/group/mongodb-user/browse_thread/thread/f31e2d23de38136a
任何人都知道mongoDB和乘客是否还存在问题,或者与乘客一起提供mongoDB-rails应用程序的最佳方式是什么?
答案 0 :(得分: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