sinatraからactiverecordを使ってるとActiveRecord::ConnectionTimeoutErrorと出る

ActiveRecord::ConnectionTimeoutError

何かよく解らないけどコネクションエラーが出る。 どうもコネクションプールの辺りに問題が有るらしいがそれくらい勝手になんとかしておいて欲しいと思うのが本音。。。

対応策としてはここに書いてあるのを参考にして。 http://tech.recompile.net/post/12565750035/activerecord

poolしてあげて。ってのをブロックで囲んであげるっぽい。 こんなの毎回書かなきゃいかんのか・・・?

元がこうなら

get '/' do
    @hoges = Hoge.find(:all, :limit => 20)
        erb :index
     end
end

こんな感じ

get '/' do
    ActiveRecord::Base.connection_pool.with_connection do
        begin
            @hoges = Hoge.find(:all, :limit => 20)
            erb :index
        end
    end
end

後で調べる(調べないフラグになる)