2010-06-25 4 views
0

Apache 2 및 Ubuntu LTC 10.04를 실행하는 Slicehost 서버에 Rails 앱이 설치되어 있습니다. 이제까지 파일이 아름답게 작동했습니다. 파일을 편집하고 mongrel_rails cluster::restart을 빠르게 수행하면 변경 내용이 제작 과정에 반영됩니다. 그러나 갑자기이 과정이 무너졌습니다.잡종이 레일스 클래스의 변경을 감지하지 못합니까?

예를 들어, Master이라는 클래스가 /lib/master.rb에 있습니다. 이 클래스에 새로운 메소드를 추가하여 간단히 puts "it works!"을 실행 한 다음 mongrel 클러스터를 다시 시작했습니다. 프로덕션 로그를 보면 서버가 오류를 발생시키고이 방법이 존재하지 않는다고 생각합니다. 그러나 ruby script/console production을 사용하여 콘솔로 이동할 때이 새로운 방법을 완벽하게 사용할 수 있습니다. 심지어 전체 Master 클래스를 포함하는 파일을 삭제하려고했습니다. 다시 한번, 생산은 그것이 아직도 거기에있다라고 생각했다. 그러나 생산 콘솔은 그것이 놓치고 있었다고 올바르게 알았다.

아이디어가 있으십니까? 프로덕션 환경에서 더 이상 존재하지 않는 클래스를 어떻게 찾을 수 있습니까?

답변

1

재밌 네요. 이걸 디버깅하는 데 2 ​​시간을 쓰고, StackOverflow에 게시하고 20 분 후에 알아내는 겁니다.

문제는 배경 작업도 다시 시작해야한다는 것입니다. 그들은/lib에 저장된 클래스의 이전 버전을 실행하고있었습니다. 이 문제가 전에 결코 나를 괴롭히지 않은 것은 흥미 롭습니다.