【发布时间】:2010-04-06 05:28:54
【问题描述】:
我在 Rack 上的 Sinatra 中构建了一个非常简单的 REST 服务。它由 3 个 Tokyo Cabinet/Table 数据存储提供支持,这些数据存储具有需要打开和关闭的连接。我有两个直接用 Ruby 编写的模型类,目前它们只是简单地连接、获取或放置他们需要的东西,然后断开连接。显然,这不会长期有效。
我还有一些 Rack 中间件,例如 Warden,它们依赖于这些模型类。
管理打开和关闭连接的最佳方法是什么?据我所知,Rack 不提供启动/关闭挂钩。我曾考虑在 env 中插入一个提供对 TC/TT 对象的引用的中间件,但随后我必须通过 Sinatra 将其通过管道传递给模型,这似乎也没有效率;这只会是与 TC 的按请求连接。我想 per-server-instance-lifecycle 会是一个更合适的生命周期。
谢谢!
【问题讨论】:
标签: ruby connection sinatra rack tokyo-cabinet