Rails服务器在与foreman一起启动时挂起

时间:2012-08-08 00:50:47

标签: ruby-on-rails ruby-on-rails-3 delayed-job foreman

这是我的Procfile的样子:

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

我打算添加一个工作进程,因为我希望运行一些后台作业。我正在关注these说明

这是我注意到的:

  • 如果工作人员单独启动,则不会遇到任何问题。
  • 当我在Procfile中保留第二行并且不更改任何其他内容时,rails服务器会提供一些请求并在此之后挂起
  • 如上所述here,我已将STDOUT.sync = true添加到config / environments / development.rb并在rails控制台中验证了相同内容。没用。
  • tailed log / development.log并将其与foreman输出到shell的内容进行比较,并注意到两者都匹配了几个请求,然后工头停止将内容打印到shell中 - 然后下一个请求将挂起
  • 我使用foreman.pkg更新了领班,如上所述here并使用[6]验证了相同
  • 有人提到here这可能是由于杂散的调试语句引起的。我没有使用调试器,我的Gemfile.lock中没有pry gem或者ruby-debug gem。
  • 我认为这些症状与此相关的未答复question
  • 相似

请帮忙!

[6]:

which foreman
/usr/bin/foreman
ls -lah /usr/bin/foreman  # checked the updated date

2 个答案:

答案 0 :(得分:0)

在此跟踪并解决:

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

TL; DR:安装gem,不要使用foreman.pkg

答案 1 :(得分:0)

我想补充一下,如果你使用的是Heroku,那么heroku toolbelt附带的工头版本会有同样的问题。

使用gem install foreman代替的方式。