在我的本地機器上,我試圖啓動我的rails應用程序並延遲了使用工頭的工作人員。我的Procfile如下所示:Rails +工頭+工人掛起服務器
web: bundle exec rails server -p $PORT
worker: bundle exec rake jobs:work
當我啓動工頭時,只有前兩個Web請求被執行。隨着第三個請求服務器掛起。第一個請求在控制檯中輸出,第二個請求不是。
如果我把我的Procfile中的工作人員排除在外,那麼服務器運行的很好,並將所有內容輸出到控制檯。另外,當我啓動沒有Foreman的rails服務器和worker時,一切工作都正常。
所以它看起來像工頭有一個問題。我猜這是Foreman在第一次請求後沒有向控制檯輸出任何東西,因此緩衝區沒有被刷新的問題。我搜索了其他帖子,結果在我的development.rb中添加了STDOUT.sync = true,但沒有取得任何成功。
有沒有人有線索?謝謝!
還沒有,更新並沒有解決我的問題。我現在有一個不同的Procfile用於開發,在那裏我省去了手動啓動的工人。我用'''工頭啓動-p 3000 -f Procfile.dev'''和工作人員用'''rake jobs:work'''啓動工頭。不理想,但它適用於我。 – smek 2012-08-08 08:35:07
這也適用於我。但我不確定Heroku是否支持它。我正在使用Heroku來部署我的應用程序。你看過嗎? – Vighnesh 2012-08-08 17:55:12
是的,這工作正常。你只是有一個不同的本地開發procfile。 Heroku使用'''Procfile'''和開發我使用'''Procfile.dev''' – smek 2012-08-09 08:29:28