2015-02-11 36 views

回答

1

我的解決辦法:

def check_mongoid_connection 
     mongoid_config = File.read("#{Rails.root}/config/mongoid.yml") 
     config = YAML.load(mongoid_config)[Rails.env].symbolize_keys 
     host, db_name, user_name, password = config[:host], config[:database], config[:username], config[:password] 
     port = config[:port] || Mongo::Connection::DEFAULT_PORT 

     db_connection = Mongo::Connection.new(host, port).db(db_name) 
     db_connection.authenticate(user_name, password) unless (user_name.nil? || password.nil?) 
     db_connection.collection_names 
     return { status: :ok } 
    rescue Exception => e 
     return { status: :error, data: { message: e.to_s } } 
    end 
0

我們想實現我們的運行Mongoid客戶的健康狀態檢查告訴我們建立的連接是否還活着。這是我們想出的:

Mongoid.default_client.database_names.present? 

基本上,它需要您當前的客戶端,並試圖查詢其連接的服務器上的數據庫。如果此服務器關閉,您將遇到超時,您可以捕獲。