7

在我的本地机器上,我正在尝试使用 Foreman 启动我的 rails 应用程序和延迟工作人员。我的 Procfile 看起来像这样:

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

当我启动工头时,只有前两个 Web 请求被执行。随着第三个请求服务器挂起。第一个请求在控制台中输出,第二个不是。

如果我在我的 Procfile 中省略了工作人员,则服务器运行良好并将所有内容输出到控制台。此外,当我在没有工头的情况下启动 rails 服务器和 worker 时,一切正常。

所以看起来Foreman有问题。我猜这是 Foreman 在第一次请求后没有向控制台输出任何内容的问题,因此缓冲区没有被刷新。我搜索了其他帖子,结果将 STDOUT.sync = true 添加到我的 development.rb 但没有任何成功。

有人有线索吗?谢谢!

4

4 回答 4

3

更新:在这里跟踪和解决:

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

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


我面临同样的问题。

这是我在stackoverflow上提出的问题的链接。@smek,如果您找到答案,请回复!

于 2012-08-08T00:54:05.220 回答
2

在我的本地开发环境中尝试实现和测试 DJ + Foreman 时,我遇到了类似的问题。我打算部署到 Heroku,并使用以下文章作为指南。如果您还部署到 Heroku,我建议安装Heroku Toolbelt,其中包括 Foreman。就我而言,我已经安装了 Heroku Toolbelt,所以我只是重新安装了它。

于 2012-11-29T20:12:32.563 回答
0

大多数情况下,有人在代码中留下了调试器/撬动语句,或者您在某处放置了断点。

如果你找不到任何东西,你可以使用 lsof 或 gdb 等系统工具来找出你的 ruby​​ 进程目前正在做什么。这可能有助于发现问题。

于 2012-07-06T10:52:41.983 回答
0

我大约一个小时前才开始使用 Foreman,我的 rake 任务和rails server被 Foreman 运行时挂起都遇到了一些问题。当我pry从我的 Gemfile 中删除 gem 时,它起作用了,但这是不可接受的,因为我在开发中使用了 pry。

然后我更新到工头版本 0.49.0(大约 10 分钟前发布),问题得到解决。太糟糕了,我一个小时后没有开始做这个任务,因为那样我就可以从 0.49.0 开始,而不必乱搞一个小时 :)

您应该尝试升级 Foreman 并查看它是否可以解决您的问题。

于 2012-07-11T19:41:12.547 回答