2010-01-20 15 views
4

Je viens de trébucher sur un posant sur la liste mongodb-utilisateur où il y avait une discussion sur le passager et le forking lors de l'utilisation mongoDB avec MongoMapper.mongoDB, les passagers et les problèmes de performance avec phusion passager

Je voulais juste rappeler que les développeurs Rails doivent modifier leur « environment.rb » si elles utilisent MongoDB avec des passagers.

Par défaut, Passenger génère des processus Ruby avec fork(). Et, comme fork () partage des descripteurs de fichier, l'application Rails doit rouvrir la connexion à MongoDB dans le nouveau "processus".

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

quelqu'un sait s'il y a encore des problèmes avec MongoDB et passager ou quelle est la meilleure façon de servir un rails MongoDB-application avec passager?

Répondre

1

Je pense que ce "problème" existe toujours, mais je pense que le correctif a été fourni dans le thread auquel vous avez lié (un lien dans le premier message) et dans un aperçu de John Nunemaker (http://gist.github.com/232953).

je crois que le bit correspondant de l'information est dans le bloc de code suivant que vous placerez dans un intializer:

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 
+0

merci beaucoup! J'apprécie vraiment de travailler avec mongoDB beaucoup. Je pense en fait à l'utiliser aussi dans la production. – z3cko