今天推出亚马逊的关系数据库服务及其“强制”维护窗口我想知道如果有人有任何解决方案来处理Rails中丢失的数据库连接。

理想情况下,如果数据库连接消失(即亚马逊正在进行维护),我希望能够自动向访问者提供维护页面 - 有没有人做过这样的事情?

干杯 Arfon

有帮助吗?

解决方案

您可以使用Rack Middleware执行此操作:

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 =〜/无法连接到/ 位可能只是偏执狂,几乎所有其他SQL错误都应该被捕获到的ActionController ::分派器

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top