2016-06-21 52 views
2

我在這裏使用蒙戈cashbash是我的代碼我們什麼時候需要關閉MongoConnection

case class A (id:String,name:String) 

class InsertClassA(a:A) 
{ 
    def inserA()={ 
    val mongoClient=MongoClient(hostName,port) 
    //get collection and insert record in mongo 
    mongoClient.close() 
    } 
} 

class UpdateClassA(a:A) 
{ 
    def UpdateA()={ 
    val mongoClient=MongoClient(hostName,port) 
    //get collection and update record in mongo 
    mongoClient.close() 
    } 
} 

class DeleteClassA(a:A) 
{ 
    def deleteA()={ 
    val mongoClient=MongoClient(hostName,port) 
    //get collection and delete record in mongo 
    mongoClient.close() 
    } 
} 

object test extends App { 
val a =A("123","bob") 
val insert =new InsertClassA(a) 
val update =new UpdateClassA(a) 
val delete =new DeleteClassA(a) 

insert.insertA() 
update.UpdateA() 
delete.deleteA() 
} 

我想知道我什麼時候應該關閉mongoConnection?以上方法是正確的?如果不是什麼正確的方式,不浪費任何資源,並以良好的方式利用mongoCLient實例,請指導我

回答

3

一般來說,MongoClient是一個重量級組件,適合長時間使用(即應用程序生存期)。因此,您應該而是在開始時打開它並保留參考。

+0

但如果我們保持打開它會浪費資源? – swaheed

+0

不是。如果您一直重新分配它,您將擁有相同數量的內存/套接字句柄/任何內容,但會在垃圾回收器和新對象創建上增加額外的負載。如果你有一個實例,你只需要分配一次,並且在CPU上佔用更少的開銷。 – mtj

相關問題