tratar automaticamente faltando conexão com o banco em ActiveRecord?

votos
3

Com o lançamento do Amazon Serviço de Banco de Dados Relacional hoje e suas janelas de manutenção 'forçados' Gostaria de saber se alguém tem alguma solução para lidar com uma conexão de dados em falta no Rails.

Idealmente, eu gostaria de ser capaz de apresentar automaticamente uma página de manutenção para os visitantes se os desaparece de conexão de banco de dados (ou seja, a Amazon está fazendo a sua manutenção) - alguém já fez algo assim?

Felicidades Arfon

Publicado 27/10/2009 em 23:33
fonte usuário
Em outras línguas...                            


1 respostas

votos
4

Você pode fazer isso com um middleware Rack:

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

Obviamente, você pode personalizar a mensagem de erro, e o e.message =~ /Can't connect to/bit pode ser apenas paranoia, quase todos os outros erros de SQL deve ser pego dentro ActionController::Dispatcher.

Respondeu 28/10/2009 em 00:00
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more