2017-03-13 17 views
0

こんにちは、シンプルなWebアプリケーションをRuby、sinatra、sequelをmysql DBに接続して構築してください。Ruby + Sequel + Sinatra + MySQL接続の問題

のUbuntu 14.04.3 LTS ルビー2.0.0 宝石 'シナトラ'、 '1.4.5' 宝石 'スリム'、 '2.0.3' 宝石 '続編'、 '4.38.0' を使用してイム mysql Ver 14.14 Distrib 5.5.54 for readline 6.3

ステータス500のランダムエラーを投げているアプリケーションのさまざまな部分にアクセスするとアプリケーションが失敗するという問題があります(バグ、それは数回試した後に動作するからです)。 ImはSequel + Mysqlの問題だと思っています。アプリはしばらくの間動作し、その後動作を停止し、それ自体で再び動作します。

多くの説明はありませんが、わかりません。何か案が?

+0

あなたはそれが動作を停止したときにアプリケーションが投げたエラーの例を提供することができます:私は続編のとユニコーンのマニュアルの両方に問題を説明すると思いますか?問題がSequel + MySQLであると思われる場合は、接続設定(Sequel ORMを使用してMySQL DBに接続する方法)の詳細を提供してください。 –

+0

Sequel.connect(DATABASE_URL)を使用して接続します.DATABASE_URL = mysql2:// @ localhost/です。私がルビー側で持っているエラーはランダムですが、通常は予期しない無限値(毎回変わるもの)を指しています –

+0

MysqlのログにはInnoDBと書かれています:./ibdata1、error:11 InnoDB:他のmysqldプロセスをまだ持っていません InnoDB:同じInnoDBデータまたはログファイルを使用しています。 私はNGINXでunicornを使って5つのworker_processesでアプリを提供しています –

答えて

1

Unicorn設定でpreload_appを使用していて、フォークの前にSequelのデータベース接続を切断していない場合は、表示されているエラーが発生する可能性があります。

https://bogomips.org/unicorn/Unicorn/Configurator.html http://sequel.jeremyevans.net/rdoc/files/doc/code_order_rdoc.html#label-Disconnect+If+Using+Forking+Webserver+with+Code+Preloading

+0

あなたを愛してください!それはそれをした! –