Монгрел не обнаруживает изменения в классах рельсов?

StackOverflow https://stackoverflow.com/questions/3114915

Вопрос

У меня есть приложение Rails, установленное на сервере Slicehost, используя Apache 2 и Ubuntu LTC 10.04. До сих пор все сработало красиво: я редактирую файл, делаю быстро mongrel_rails cluster::restart, и изменения отражены в производстве. Однако внезапно этот процесс сломался.

Например, у меня есть класс под названием Master находится в /lib/master.rb. Анкет Я добавил новый метод в этот класс, который просто работает puts "it works!", затем перезапустил кластер Монгрела. Глядя на производственные журналы, сервер бросает ошибку и считает, что этого метода не существует. Когда я иду на консоль, используя ruby script/console production, однако, я могу использовать этот новый метод отлично. Я даже попытался удалить файл, содержащий весь Master класс. Еще раз, производство подумала, что оно все еще там, но производственная консоль правильно узнала, что не хватает.

Любые идеи? Как производственная среда может обнаружить класс, который больше не существует?

Это было полезно?

Решение

Забавно, я провожу 2 часа отладки, а затем публикую в Stackoverflow и выясняю его через 20 минут.

Проблема в том, что мне также нужно было также перезагрузить свою фоновую работу. Они запускали старую версию классов, хранящихся в /lib. Интересно, что эта проблема никогда не забивала меня раньше.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top