私のローカルマシンでは、私は私のレールアプリを起動しようとしており、フォアマンを使って作業員を遅らせています。私の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に追加しましたが、成功しませんでした。
誰か手掛かりがありますか?ありがとう!
まだ、更新しても問題は解決しませんでした。私は今、私が手動で起動する作業員を除外した開発のための別のProcfileを持っています。私は '' 'foreman start -p 3000 -f Procfile.dev'''で作業員を始め、' 'rake jobs:work'''で作業員を始めます。理想的ではないが、それは私のために働く。 – smek
それも私のために働いています。しかし、私はHerokuがそれをサポートしているかどうかは分かりません。私は私のアプリケーションを展開するためにHerokuを使用しています。それを調べましたか? – Vighnesh
はい、うまくいきます。あなたはちょうど地方開発のための別のprocfileを持っています。 Herokuは '' 'Procfile'''を使い、開発には' '' Procfile.dev'''を使います。 – smek