ruby – 如何在Sinatra中创建mongodb的全局连接对象?
发布时间:2020-12-17 02:59:17 所属栏目:百科 来源:网络整理
导读:使用 ruby mongodb驱动程序,有没有办法在configure块中创建一个可以在路由方法中访问的连接对象,这样我就不必在每个请求上重新创建连接? 解决方法 在配置块中设置全局变量: configure do $mongo = Mongo::Connection.newend 或将其粘贴在设置中: configur
使用
ruby mongodb驱动程序,有没有办法在configure块中创建一个可以在路由方法中访问的连接对象,这样我就不必在每个请求上重新创建连接?
解决方法
在配置块中设置全局变量:
configure do $mongo = Mongo::Connection.new end 或将其粘贴在设置中: configure do set :mongo,Mongo::Connection.new end get '/' do # the connection is available through settings.mongo end 我必须说,我发现这些都不是很优雅. 在开发中看起来好像连接是在每个请求上创建的,但是在生产中启动服务器并且您将看到它的行为不同(例如,瘦-e生产). 此外,如果您的应用程序将在Passenger下运行,则需要执行以下操作: configure do if defined?(PhusionPassenger) PhusionPassenger.on_event(:starting_worker_process) do |forked| if forked # *** reconnect to the database here! *** end end end end 它的作用是它在Passenger分支之后重新连接到数据库,因此子进程有自己的连接.不这样做会给你带来非常奇怪的错误. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |