1

这是我的 Procfile 的样子:

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

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

这是我注意到的:

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

请帮忙!

[6]:

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

2 回答 2

0

在这里跟踪和解决:

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

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

于 2012-08-08T19:27:33.067 回答
0

如果你使用 Heroku,我会补充一点,heroku 工具带中包含的工头版本也有同样的问题。

改用你能得到的那个gem install foreman

于 2013-08-28T16:09:15.023 回答