在ActiveRecord中自动处理丢失的数据库连接?
-
06-07-2019 - |
题
今天推出亚马逊的关系数据库服务及其“强制”维护窗口我想知道如果有人有任何解决方案来处理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 ::分派器代码>
不隶属于 StackOverflow