私はSinatraで小さなチャットアプリケーションを作成し、herokuではjQueryを作成しました。ユーザーがメッセージを送信すると、データベースにメッセージが挿入されます。また、2秒ごとに新しいメッセージをダウンロードします。テストの数分後には動作を停止し、私は、電子メールフォームHerokuの受信:データベース接続プール
こんにちは、
我々はgisekchatアプリが共有データベースへのオープン接続 を大量に持っていたことに気づいたの。パフォーマンス上の理由から、 の接続数を共有データベースに制限する必要がありました。 共有データベースへの全体接続数を減らすか、または 専用データベースに移動できますか?
接続プール を利用していないと思われ、 からのリクエストごとにデータベースへの新しい接続が開かれています。
post '/send' do con = con = PGconn.connect($dbhost, 5432, "","",$dbname, $dbuser, $dbpass) con.exec("insert into messages(usr, msg, date) values('#{params[:usr]}','#{params[:msg]}', now())") end
にはどうすれば接続プーリングを有効にするために、それを変更する必要があります。
おかげで、 -Chris
これはアクションが(受信は非常に似ている)メッセージを送信し支援していますか?
スレッド安全性が達成する必要がある場合はそうだと思われますが、これは普通はモダラ版ではなく、古典的なもの(afaik) – robustus
から見ることができます、それは私たちがsinatraアプリを扱っているように見えます。私は確信していませんが、すべてのリクエストは英雄の無料ホスティングの新しいスレッドを介して来ると思います。 「モジュール版」とはどういう意味ですか? – jacobsimeon
sinatraアプリを書くには2つの異なるバージョンがあります。古典的なもので、「メイン」ファイルにはルートと操作が含まれています。インスタンス変数がなく、Sinatra :: Baseからクラスを実装するモジュール式のもの – robustus