在ruby脚本中重用mongodb连接

时间:2014-11-14 23:43:31

标签: ruby mongodb

我有一个带有几个MongoDB连接的ruby脚本我发现每个查询/插入都打开一个新的连接,留下了很多连接。

ruby​​-2.0.0p195-2.el6.x86_64& mongodb的-2.4.12-1.el6.x86_64

在我的脚本中,我根据以下示例有多个连接。我如何使用单个或尽可能少的连接,以便我不会在任何时候使用100个。我的脚本被分成def foo / end块,其中一些块只有1分贝的动作,其他块有3或4个。

#Insert into db
db = Mongo::Connection.new.db("room1-web")
coll = db.collection("room1")
coll.update({"_id" =>a}, rabbitdb, {upsert:true})

#Insert into db
db = Mongo::Connection.new.db("room1-web")
coll = db.collection("room1")
coll.update({"_id" =>b}, chickendb, {upsert:true})

#Do query on db to update indicators etc.
db = Mongo::Connection.new.db("room1-indi-lookup")
coll = db.collection("elements")
kitty = coll.find({"_id" => table[address][i], "state" => char}, :fields => {"_id" => 0, "state" => 0}).to_a

1 个答案:

答案 0 :(得分:0)

@conn = Mongo::Connection.new("localhost", 27017, :pool_size => 5, :pool_timeout => 5)
db = @conn.db(.....)