2012-07-06 8 views
6

私のローカルマシンでは、私は私のレールアプリを起動しようとしており、フォアマンを使って作業員を遅らせています。私のProcfileは次のようになります:Rails + foreman + workerがサーバーをハングアップ

web: bundle exec rails server -p $PORT 
worker: bundle exec rake jobs:work 

私がforemanを起動すると、最初の2つのWeb要求だけが実行されます。 3番目の要求で、サーバーがハングします。最初のリクエストはコンソールに出力され、2番目のリクエストはコンソールに出力されません。

私は私のProcfileで労働者を除外した場合、サーバーは正常に動作していると、コンソールにすべてを出力しています。また、私がForemanを使わずにレールサーバーとワーカーを始めるときには、すべてがうまくいきます。

Foremanに問題があるようです。私はそれが最初の要求の後にコンソールに何も出力しないため、フォアマンが問題であると推測しているので、バッファがフラッシュされません。私は他の投稿を検索し、結果としてSTDOUT.sync = trueを自分のdevelopment.rbに追加しましたが、成功しませんでした。

誰か手掛かりがありますか?ありがとう!

答えて

3

UPDATE: が追跡され、ここで解決:

https://github.com/ddollar/foreman/issues/244

TL; DR:私は同じ問題に直面しています


foreman.pkg使用していない、宝石をインストールします。 。

は、ここで私はstackoverflowの上で求めてきましたquestionへのリンクです。 @smek、あなたが答えを見つけたら、返信してください!

+0

まだ、更新しても問題は解決しませんでした。私は今、私が手動で起動する作業員を除外した開発のための別のProcfileを持っています。私は '' 'foreman start -p 3000 -f Procfile.dev'''で作業員を始め、' 'rake jobs:work'''で作業員を始めます。理想的ではないが、それは私のために働く。 – smek

+0

それも私のために働いています。しかし、私はHerokuがそれをサポートしているかどうかは分かりません。私は私のアプリケーションを展開するためにHerokuを使用しています。それを調べましたか? – Vighnesh

+0

はい、うまくいきます。あなたはちょうど地方開発のための別のprocfileを持っています。 Herokuは '' 'Procfile'''を使い、開発には' '' Procfile.dev'''を使います。 – smek

0

誰かがコード内にデバッガー/ pryステートメントを残したり、どこかにブレークポイントを置いたりしています。

あなたがあなたのルビープロセスは、現時点では何をしているかを調べるためにlsofのか、GDBのようなシステムツールを使用することができますよりも、何かを見つけることができない場合。問題の発見に役立つ可能性があります。

0

私はわずか1時間ほど前にフォアマンを使用し始め、そしてフォアマンによって運営されているとき、私は私のすくいタスクとrails serverハングの両方でいくつかの問題を抱えていました。私がGemfileからpryの宝石を取り除いたとき、それはうまくいったが、私は開発に慣れてから受け入れられなかった。

それから私は(約10分前にリリースされた)職長バージョン0.49.0に更新され、問題が修正されました。あまりにも悪いことに、私はこの仕事で1時間後に作業を開始しませんでした。なぜなら、私は0.49.0から始めて1時間ほど邪魔しなくて済むからです。

あなたはForemanをアップグレードしてくださいあなたの問題を解決します。

+0

申し訳ありませんが、私の遅い返信はありますが、Foremanを更新しても問題は解決しません。 – smek

2

ローカルの開発環境でDJ + Foremanを実装してテストしようとすると、同様の問題が発生しました。私はHerokuに展開するつもりで、followingの記事を参考にしていました。 Herokuにも展開している場合は、Foremanを含むHeroku Toolbeltをインストールすることをお勧めします。私の場合、私はすでにHeroku Toolbeltをインストールしていたので、単に再インストールしました。

関連する問題