문제

나는 XML을 드물게 제공 한 Rails 앱이 있습니다. 이것은 Mongrel과 MySQL과 함께 운영되고 있습니다. 나는 몇 시간 이상 앱을 운동하지 않으면 죽었고 Errno :: epipe 오류를 던지기 시작한다는 것을 알았습니다. MySQL 연결이 비활성 또는 그와 비슷한 것을 위해 시간이 걸리는 것 같습니다.

'Mongrel_Rails Respart -p/path/to/the/mongrel.pid'로 다시 시작할 수 있습니다. 그러나 그것은 실제로 해결책이 아닙니다. 내 공동 작업자는 앱이 자신의 역할을 수행 할 때 앱이있을 것으로 기대합니다 (그리고 나는 주변에 있지 않을 것입니다).

내 질문은 다음과 같습니다.

  • 이 문제가 첫 번째 장소에서 발생하는 것을 방지하기 위해 어떻게해야합니까? (예 : 나를 시간에 타지 마세요 !!).
  • 실패하면 DB 연결을 자동으로 리메이크 할 수있는 어딘가에 삽입 할 수있는 코드가 있습니까?
도움이 되었습니까?

해결책

다음은 해결책입니다.

https://boxpanel.blueboxgrp.com/public/the_vault/index.php/mongrel_/_mysql_timeout

위의 솔루션의 시간 초과는 나에게 약간 높습니다. 연결이 사용할 수있는 메모리의 양 때문에 DB 타임 아웃이 너무 낮아지기를 원하지 않습니다. 연결이 고아가되면 합리적으로 시간을 보내기를 원합니다 (일주일 안에는 그렇지 않습니다.)

다른 팁

다른 곳에서는 다음과 같은 제안도 받았습니다.

  1. 설정해보십시오config.active_record.verification_timeout MySQL 연결 시간 초과 설정이 무엇이든간에 더 낮은 것.

  2. 이 문제를 해결해야 할 보석이 있습니다. mysql_retry_lost_connection

     http://rubyforge.org/projects/zventstools/
     "Reconnect to the MySQL server when you hit a lost connection error".
    
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top