所以我一直在努力寻找更多关于这个的信息。
我目前正在使用 sinatra + mongodb + unicorn 构建轻量级 API。
由于在 unicorn 上运行的中间件应用程序中的实例变量只能在每个请求中存活,这样的事情是行不通的:
@connector ||= Mongo::Connector.new 'localhost'
这意味着对于每个传入的请求,我都会创建一个新的 Mongo::Connection 实例,经过几次请求后,它会在我的机器上生成一整套 mongodb 进程。我通过声明一个全局变量解决了这个问题
$connector ||= Mongo::Connector.new 'localhost'
但这是要走的路吗?使用这种表示法是否安全?请给我你的想法。