7

ローカル マシンで Rails アプリを起動しようとしており、Foreman を使用してジョブ ワーカーを遅らせています。私のProfileは次のようになります:

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

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

Procfile でワーカーを省略した場合、サーバーは正常に動作しており、すべてをコンソールに出力しています。また、フォアマンなしでレールサーバーとワーカーを起動すると、すべて正常に動作します。

フォアマンに問題があるようです。最初のリクエストの後、フォアマンがコンソールに何も出力しないため、バッファがフラッシュされないという問題があると思います。他の投稿を検索した結果、 STDOUT.sync = true を development.rb に追加しましたが、成功しませんでした。

誰も手がかりを持っていますか?ありがとう!

4

4 に答える 4

2

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

于 2012-11-29T20:12:32.563 に答える
0

私は約 1 時間前に Foreman を使い始めたばかりで、レーキ タスクとrails serverForeman による実行時のハングの両方に問題がありました。Gemfile から gemを削除するpryと機能しましたが、開発で pry を使用しているため、これは受け入れられませんでした。

その後、フォアマン バージョン 0.49.0 (約 10 分前にリリースされた) に更新したところ、問題は修正されました。残念なことに、この作業を 1 時間後に開始しませんでした。なぜなら、最初に 0.49.0 を取得し、1 時間いじる必要がなかったからです :)

Foreman をアップグレードして、問題が解決するかどうかを確認してください。

于 2012-07-11T19:41:12.547 に答える
0

ほとんどの場合、誰かがデバッガー/pry ステートメントをコードに残したままにするか、ブレークポイントをどこかに配置します。

何も見つからない場合は、lsof や gdb などのシステム ツールを使用して、Ruby プロセスが現在何をしているかを調べることができます。問題を見つけるのに役立つかもしれません。

于 2012-07-06T10:52:41.983 に答える