1

J'ai hérité de la maintenance d'une application Web héritée avec un moyen "intéressant" de gérer l'accès simultané à la base de données.Rails development: comment répondre à plusieurs demandes à la fois?

L'application est basée sur ruby-on-rails 2.3.8. Je voudrais mettre en place un environnement de développement et à partir de là, deux navigateurs Web font des requêtes simultanées, juste pour avoir une idée de ce qui se passe.

Bien sûr, cela ne fonctionnera pas si j'utilise Webrick, car il ne traite qu'une seule requête http à la fois, donc toutes les requêtes sont effectivement sérialisées.

Je pensais que bâtarde pouvait me aider, mais

mongrel_rails start -n 5 

fraie en fait un processus unique et il semble être seul thread, aussi.

Quelle est la manière la plus simple de définir mon environnement de développement pour qu'il réponde à plusieurs requêtes à la fois? Je voudrais éviter d'utiliser apache et mod_passenger car, en cours de développement, j'aimerais pouvoir changer le code et le recharger automatiquement lors de la prochaine requête.

Répondre

1

En mode développement, mod_passenger recharge les classes et les vues. J'utilise des passagers exclusivement pour le développement et le déploiement.

En production, vous pouvez (à partir de la racine de l'application des rails):

touch tmp/restart.txt 

et le passager rechargera l'application.

0

Jetez un oeil à mince

http://code.macournoyer.com/thin/

+0

Eh bien, par défaut 'thin' semble répondre à une seule demande à la fois. J'ai essayé d'utiliser le paramètre de ligne de commande servers 'thin --servers 10' mais cela semble générer plusieurs instances d'écoute fine sur différents ports - mais j'aimerais avoir une seule URL pour mon application. Est-ce que je manque quelque chose? – fdierre

+0

Vous devrez peut-être utiliser 'thin - threaded'. Selon les docs, il appelle l'application Rack dans les threads. – Anjan

Questions connexes