Ruby on rails Rails服务器在与foreman一起启动时挂起
下面是我的Procfile的外观:Ruby on rails Rails服务器在与foreman一起启动时挂起,ruby-on-rails,ruby-on-rails-3,delayed-job,foreman,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 我打算添加一个辅助进程,因为我希望运行一些后台作业。我遵照指示 这就是我注意到的: 如果单独启动辅助进程,则不会遇到问题 当我将第二行保留在Procfile中并且不更改任何其他内容时,rails服务器会提供一些请求,然后挂起 如前所述,我已经在config/environme
web: bundle exec rails server thin -p $PORT -e $RACK_ENV
worker: bundle exec rake jobs:work
我打算添加一个辅助进程,因为我希望运行一些后台作业。我遵照指示
这就是我注意到的:
- 如果单独启动辅助进程,则不会遇到问题
- 当我将第二行保留在Procfile中并且不更改任何其他内容时,rails服务器会提供一些请求,然后挂起
- 如前所述,我已经在config/environments/development.rb中添加了
,并在rails控制台中验证了这一点。不起作用STDOUT.sync=true
- 跟踪log/development.log,并将其与foreman输出到shell的内容进行比较,发现两者都符合几个请求,然后foreman停止向shell打印内容,下一个请求将挂起
- 我使用前面提到的foreman.pkg更新了foreman,并用[6]进行了验证
- 有人提到,这可能是由于错误的调试语句造成的。我没有使用调试器,并且我的Gemfile.lock中没有pry gem或ruby debug gem
- 我相信这些症状与这个相关的未解之谜相似
在此跟踪并解决:
TL;DR:安装gem,不要使用foreman.pkg如果您使用的是Heroku,Heroku工具带附带的foreman版本也有同样的问题 使用您可以通过
gem install foreman
获得的工具
which foreman
/usr/bin/foreman
ls -lah /usr/bin/foreman # checked the updated date