I have built a pretty simple REST service in Sinatra, on Rack. It's backed by 3 Tokyo Cabinet/Table datastores, which have connections that need to be opened and closed. I have two model classes written in straight Ruby that currently simply connect, get or put what they need, and then disconnect. Obviously, this isn't going to work long-term.
I also have some Rack middleware like Warden that rely on these model classes.
接続の開閉を管理する最良の方法は何ですか? 私が知っているように、ラックは起動/シャットダウンフックを提供しません。env の TC/TT オブジェクトへの参照を提供するミドルウェアを挿入することを考えましたが、それを Sinatra 経由でモデルにパイプする必要があり、これも効率的ではないようです。そして、それは TC へのリクエストごとの接続になるだけです。サーバーインスタンスごとのライフサイクルがより適切な寿命になると思います。
ありがとう!