这是我的 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