Ruby on 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

我需要我的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_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秒后超时