代码之家  ›  专栏  ›  技术社区  ›  z3cko

MongoDB,乘客和性能问题与Phusion乘客有关

  •  4
  • z3cko  · 技术社区  · 16 年前

    我刚刚在MongoDB用户列表上偶然发现了一个姿势,在这里有一个关于在MongoMapper中使用MongoDB时乘客和分叉的讨论。

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

    默认情况下,passenger使用fork()生成Ruby进程。而且,作为叉子 ()共享文件描述符,Rails应用程序必须重新打开连接 给MongoDB带来了全新的“过程”。

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

    有人知道MongoDB和Passenger是否仍然存在问题,或者什么是向Passenger提供MongoDB Rails应用程序的最佳方式?

    1 回复  |  直到 16 年前
        1
  •  1
  •   samullen    16 年前

    我认为这个“问题”仍然存在,但我认为修复是在你链接到的线程(第一条消息中的链接)和约翰·努内梅克的要点中提供的。( 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