3
Mongoid是否有類似ActiveRecord::Base.connected?
的方法? 我想檢查可訪問的連接。如何檢查Mongoid的連接
Mongoid是否有類似ActiveRecord::Base.connected?
的方法? 我想檢查可訪問的連接。如何檢查Mongoid的連接
我的解決辦法:
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
我們想實現我們的運行Mongoid客戶的健康狀態檢查告訴我們建立的連接是否還活着。這是我們想出的:
Mongoid.default_client.database_names.present?
基本上,它需要您當前的客戶端,並試圖查詢其連接的服務器上的數據庫。如果此服務器關閉,您將遇到超時,您可以捕獲。