Mongrel ne pas détecter les changements dans les classes Rails?
-
29-09-2019 - |
Question
J'ai une application Rails installé sur un serveur Slicehost exécutant Apache 2 et Ubuntu LTC 10,04. Les choses ont magnifiquement travaillé jusqu'à présent: modifier un fichier, faire un mongrel_rails cluster::restart
rapide et les changements se reflètent dans la production. Cependant, tout à coup ce processus est en panne.
Par exemple, j'ai une classe appelée Master
situé dans /lib/master.rb
. J'ai ajouté une nouvelle méthode pour cette classe qui fonctionne simplement puts "it works!"
, puis redémarré le cluster bâtarde. En regardant les journaux de production, le serveur renvoie une erreur et pense que cette méthode n'existe pas. Quand je vais à la console en utilisant ruby script/console production
, cependant, je peux utiliser cette nouvelle méthode parfaitement. J'ai même essayé de supprimer le fichier contenant la classe entière Master
. Encore une fois, la production a pensé qu'il était toujours là, mais correctement la console de production reconnu qu'il avait disparu.
Toutes les idées? Comment l'environnement de production de détecter une classe qui n'existe même plus?
La solution
Drôle, je passe 2 heures de débogage cela, puis après à StackOverflow et figure, il en 20 minutes.
Le problème est que je devais redémarrer aussi mes travaux d'arrière-plan. Ils étaient en cours d'exécution l'ancienne version des classes stockées dans / lib. Il est intéressant de noter que ce problème ne m'a jamais accroché avant.