当前位置:  开发笔记 > 编程语言 > 正文

使用Sinatra和MongoDB - 什么是"保持活跃"http请求之间的mongodb连接的推荐方法?

如何解决《使用Sinatra和MongoDB-什么是"保持活跃"http请求之间的mongodb连接的推荐方法?》经验,为你挑选了2个好方法。

我使用过ASP.NET,现在我正在使用Sinatra/MongoDB应用程序.使用ASP.NET体系结构,给定请求使用的数据库连接来自ADO.NET管理的连接池.在请求之间,池中的连接保持活动状态,因此不会为每个http请求支付构建和拆除连接的成本.

Sinatra MongoDB应用程序中是否有类似的机制,或者我是否需要连接/断开每个请求?如果有机制,代码是什么样的?

编辑1:以下不起作用.浏览器发送的每个HTTP请求都会命中new.db行,包括对css,js,jpeg文件的请求.

require 'mongo'
include Mongo

db = Mongo::Connection.new.db("MyDb")

class MyApp < Sinatra::Base
    get '/' do
       etc

rfunduk.. 8

最新版本的ruby mongodb驱动程序包括连接池.你可以configure在你的sinatra应用程序中设置你的游泳池,鲍勃是你的叔叔.



1> rfunduk..:

最新版本的ruby mongodb驱动程序包括连接池.你可以configure在你的sinatra应用程序中设置你的游泳池,鲍勃是你的叔叔.



2> Kyle Banker..:

如果在请求方法范围之外创建数据库连接,则不会在每个请求时重新声明连接.

初始化db时,您可能希望尝试使用全局变量或实例变量.

# Should be in a configure block
configure do
  DB = Connection.new.db('test-sinatra')
end

此外,连接池不是问题,当然也不是这个特定问题的解决方案.

推荐阅读
ar_wen2402851455
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有