ActiveRecord에서 누락 된 데이터베이스 연결을 자동으로 처리 하시겠습니까?

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

문제

아마존의 출시와 함께 관계형 데이터베이스 서비스 오늘과 그들의 '강제'유지 보수 창은 레일에 누락 된 데이터베이스 연결을 처리 할 수있는 솔루션이 있는지 궁금했습니다.

이상적으로는 데이터베이스 연결이 사라지면 방문자에게 유지 보수 페이지를 자동으로 제시 할 수 있기를 원합니다 (즉, 아마존이 유지 보수를하고 있습니다) - 누구든지 이와 같은 일을 한 적이 있습니까?

Arfon을 건배합니다

도움이 되었습니까?

해결책

랙 미들웨어 로이 작업을 수행 할 수 있습니다.

class RescueFromNoDB < Struct.new(:app)
  def call(env)
    app.call(env)
  rescue Mysql::Error => e
    if e.message =~ /Can't connect to/
      [500, {"Content-Type" => "text/plain"}, ["Can't get to the DB server right now."]]
    else
      raise
    end
  end
end

분명히 오류 메시지를 사용자 정의 할 수 있습니다. e.message =~ /Can't connect to/ 비트는 단지 편집증 일 수 있습니다. 거의 모든 다른 SQL 오류는 내부에 걸리야합니다. ActionController::Dispatcher.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top