2010-07-17 4 views

답변

2

내가 아는 한 Rails 프레임 워크 내에서 애플리케이션을 풀 수있는 공식적인 방법은 없습니다. 기본 Ruby at_exit 언어 기능을위한 하나 이상의 핸들러 설치를 고려할 수 있습니다. 그러나 이것은 응용 프로그램의 명령 된 종료를 처리하는 것입니다.

더 일반적인 전략은 응용 프로그램에 대한 주문 및 예기치 않은 종료 사례를 잡는 서버 모니터링 프레임 워크를 사용하는 것입니다. 나는 실제로 이것을 테스트하지는 않았지만 레일 인스턴스가 Passenger 내부에 호스팅되어 있고 관련 Apache 또는 Nginx 서버가 추락 한 경우 at_exit 핸들러가 호출 될 것임을 의심 스럽습니다. 예기치 않게 종료되는 응용 프로그램 컨테이너에 대해서도 유사한 관찰이 적용될 수 있습니다.

당신은 God 또는 Monit 또는 Nagios 같은 것을 고려할 수있다 (에 따라 얼마나 복잡한 요구 사항) 나눠 응용 프로그램 종료에 대한 일반적인 전략을 구현하고 상황의 각 세트에 맞는 일을합니다. 이러한 프레임 워크는 해당 데몬도 모니터링 할 수 있습니다.

+0

우수 답변 bjg. 빠른 질문 : God, Monit 및 Nagios가 모두 JRuby 환경에서 실행됩니까? – rmk

+0

그래서 Monit과 Nagios는 Jetty/Tomcat/Glassfish 같은 Java 프로세스를 비롯하여 모든 종류의 프로세스를 모니터링 할 수 있습니다. 또는 JRuby 앱을 배포 할 계획이라면 무엇이든 할 수 있습니다. JRuby에서 Ruby로 작성된 God은 내가 아는 한 JRuby에서 실행되지 않습니다. 그러나 신과 감시 대상 응용 프로그램이 반드시 같은 Ruby로 실행되어야하는 이유는 없습니다 (다른 이유로 인해 제한하지 않는 한). – bjg

관련 문제