小さなAPI実装にSinatraとSequelを使用しています。しかし、問題は、すべてのページ要求に対して、SequelはMySQLへの新しい接続を開き、タイムアウトするまで開いておくか、Apacheを再起動することです。Sequel + Sinatra + Phusion Passenger + MySQL接続管理
接続を再利用する方法については多くのドキュメントがないので、ヘルプ、説明、または正しい方向のポインタが役立ちます。
小さなAPI実装にSinatraとSequelを使用しています。しかし、問題は、すべてのページ要求に対して、SequelはMySQLへの新しい接続を開き、タイムアウトするまで開いておくか、Apacheを再起動することです。Sequel + Sinatra + Phusion Passenger + MySQL接続管理
接続を再利用する方法については多くのドキュメントがないので、ヘルプ、説明、または正しい方向のポインタが役立ちます。
私たちが間違っていたことを理解しました。それはむしろばかばかしく、Sinatraのフィルターの前にSequelを初期化しました。
は、だからではなく、私たちは行います
DB = Sequel.mysql("...")
その後、我々は単に続編を使用するようにDB
定数を使用します。
私は小さなラッパーで続編のものを包み、このラッパーを再利用し、次のように:また
get '/api/:call' do
@@api ||= SApi.new
@@api.call(params[:call])
end
class SApi
def initialize
connect
end
def connect
@con = Sequel.connect("...")
end
def call(x)
#handle call using @con
end
end
、あなたが終わったらcon.disconnect @呼び出したり、ブロックを使用してSequel.connectを呼び出すことができます:
Sequel.connect("...") do |c|
# work with c
end #connection closed
しかし、私たちは既にこの問題を別の方法で解決しています。私はちょっと閉じた/質問に答えることを忘れた*ホイッスル* :) – jimeh
どこに接続を設定しますか?いくつかのサンプルコードを投稿できますか? – BaroqueBobcat