【问题标题】:when do we need to close MongoConnection我们什么时候需要关闭 MongoConnection
【发布时间】:2016-06-21 05:39:10
【问题描述】:

我正在使用 mongo cashbash 这是我的代码

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实例的正确方法,请指导我

【问题讨论】:

    标签: java mongodb scala database-connection connection-pooling


    【解决方案1】:

    一般来说,MongoClient 是为长生命周期(即应用程序生命周期)量身定制的重量级组件。因此,您应该在开始时打开它一次并保留引用。

    【讨论】:

    • 但是如果我们保持打开它会浪费资源吗?
    • 并非如此。如果您一直重新分配它,您将拥有相同数量的内存/套接字句柄/任何东西,但会给垃圾收集器和新对象创建带来额外的负载。如果您只有一个实例,则只需一次分配所有实例,从而减少 CPU 开销。
    猜你喜欢
    • 1970-01-01
    • 2019-07-17
    • 2018-01-21
    • 2012-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-30
    • 2011-09-20
    相关资源
    最近更新 更多