Si vous utiliser Phusion Passenger (ou mod_rails), vous savez déjà que votre application est démarrée une première fois lors du premier chargement de page. Puis que tous les autres chargements se baseront sur cette application déjà démarrée, jusqu'à ce que vous la redémarriez. En gros, si vous modifiez un fichier dans votre application, la modification ne sera pas prise en compte jusqu'à ce que l'application ne soit redémarrée. Cela permet d'accélérer considérablement le chargement des pages en production.
Pour redémarrer votre application de manière exceptionnelle, il vous suffit de créer le fichier tmp/restart.txt Après le rechargement de l'application, le fichier sera automatiquement supprimé.
Mais dans des environnements de développement ou de test, ce n'est pas forcément adapté et c'est plutôt lourd de redémarrer l'application à chaque fois.
C'est pourquoi une nouvelle feature a été ajoutée dans le git de passenger il y a quelques jours de cela. En créant le fichier tmp/always_restart.txt. Ce document, si il existe, force le redémarrage de l'application. Cependant, contrairement à restart.txt, il n'est pas supprimé après le redémarrage de celle-ci. Votre application sera donc redémarrée à chaque chargement de page.
Bien évidemment, ceci n'est pas à utiliser dans des environnements de production (sauf si vous cherchez volontairement à fortement ralentir votre application). Le commit en question.La fonctionnalité arrivera probablement dans la branche stable lors de la prochaine release.


Commentaires
Chaque requête doit prendre un temps fou dans ce cas, non ? Pourquoi ne pas développer "simplement" avec Webrick ou même Mongrel en mode développement ? L'avantage que je vois c'est pour les lib/ ou vendor/plugins qui ne sont pas ré-évalués même en mode développement, ce qui peut être assez aggaçant. Mais sinon... ouch.
Énorme, merci de l'info !
@JB oui, chaque requête va prendre un temps fou, je te l'accorde. Après, Webrick ou Mongrel, ça nécessite, si on a déjà Apache sur la machine, soit d'avoir une seconde ip; soit de lancer le serveur sur un autre port que le 80.
En utilisant Passenger tout de même, on peut avoir de l'Apache en développement.