2016-07-28 91 views
0

我應該用什麼方法調用Mongo::Client對象來檢查與數據庫服務器的連接是否處於活動狀態?在各種語言如何檢查與mongodb的連接是否處於活動狀態?

require 'mongo' 
host = '127.0.0.1' 
port = '27017' 

client = Mongo::Client.new("mongodb://#{host}:#{port}") 
+0

定義'有效'?它會提出一個錯誤,如果它無法連接 – Anthony

+0

我剛剛嘗試(mongo 2.2.x),它不會引發錯誤(好像它在後臺重試或某事) –

回答

1

由於MTJ建議,以檢查是否連接有效/活躍我想獲取數據庫列表如下:

require 'mongo' 
host = '127.0.0.1' 
port = '27017' 

begin 
    client = Mongo::Client.new("mongodb://#{host}:#{port}") 
    client.database_names 
rescue Mongo::Auth::Unauthorized, Mongo::Error => e 
    info_string = "Error #{e.class}: #{e.message}" 
    puts info_string 
end 
0

MongoClient實現爲「懶存根」,讓你不會立即得到一個錯誤,如果連接是不可能的。相反,當具體查詢通過該行時,會出現錯誤。

據我所知,確保連接發生的唯一方法是從服務器查詢一些數據。例如,在我們的項目中,我們只需在初始化時閱讀數據庫列表。

注:如查詢結果也可能是懶惰存根,確保實際閱讀結果在你的客戶;-)

相關問題