Ruby on rails Rails多数据库连接超时,容错
我需要我的rails应用程序来连接多个数据库。在我的模型中创建了一个函数来帮助我解决这个问题Ruby on rails Rails多数据库连接超时,容错,ruby-on-rails,ruby,ruby-on-rails-3,postgresql,rails-activerecord,Ruby On Rails,Ruby,Ruby On Rails 3,Postgresql,Rails Activerecord,我需要我的rails应用程序来连接多个数据库。在我的模型中创建了一个函数来帮助我解决这个问题 # return true if it change the connection, false otherwise def self.change_connection (database_name) ret = false begin self.connection_handler.clear_all_connections!() self.establish_connec
# return true if it change the connection, false otherwise
def self.change_connection (database_name)
ret = false
begin
self.connection_handler.clear_all_connections!()
self.establish_connection :"#{database_name}"
@@db_conf_name = database_name
ret = true
rescue
self.connection_handler.clear_all_connections!()
self.establish_connection :"#{@@db_conf_name}" unless @@db_conf_name.empty?
end
ret
end
如果所有数据库都已启动并正在运行,则此方法非常有效,但当应用程序更改为不在线的数据库时,此方法不会给出任何异常,并且应用程序会在Web服务器超时(60秒)之前卡在与数据库的第一次交互中
我尝试了此更改,但也不起作用:
Timeout::timeout(2){
self.connection_handler.clear_all_connections!()
self.establish_connection :"#{database_name}"
#dummy query force to establish the connection
connection.execute("SELECT 1 from broadcasts")
}
此超时从未触发
有没有办法配置超时或检查数据库是否联机并在2秒或3秒后超时