質問

私たちは、小さなAPIの実装のためのシナトラや続編を使用しています。私たちが持っている問題は、しかし、すべてのページリクエストの続編でMySQLへの新しい接続を開き、彼らはタイムアウト、またはApacheを再起動するまで、それらを開いた保つことである。

があり接続を再利用する方法についての文書の多くはありませんので、右方向に任意のヘルプ、説明、および/またはポインタが役立つだろう。

役に立ちましたか?

解決 2

私たちは、私たちが間違って何をしていた考え出しました。それは、我々はシナトラにおけるフィルタの前に続編をむしろ愚かな初期化されました。

だからではなく、我々の操作を行います。

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

あなたは完成しているかのブロックを使用してSequel.connectを呼び出したら代わりに、あなたはcon.disconnect @呼び出すことができます:

Sequel.connect("...") do |c|
   # work with c
end #connection closed 
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top