Faye服务器不是由工头启动的

时间:2013-03-13 09:05:17

标签: ruby-on-rails faye foreman

我正在努力与领班开始。我的procfile看起来像这样:

web: bundle exec rails server thin -p $PORT -e $RACK_ENV
worker: bundle exec sidekiq
redis: bundle exec redis-server
faye: bundle exec rackup faye.ru -s thin -E production

当我运行bundle exec foreman start

web,worker和redis服务器都正常启动,但不是faye服务器。

在控制台中,我得到:10:53:56 faye.1 | started with pid 10907

然后再从faye开始。

如果我使用procfile中的命令运行faye服务器:bundle exec rackup faye.ru -s thin -E production,则faye正确启动。我做错了什么?

3 个答案:

答案 0 :(得分:2)

当你在本地运行时:

bundle exec rackup faye.ru -s thin -E production

rackup将使用它的默认端口,即9292。

当它在Herkou上运行时,如果该端口已在使用中,它可能无法启动。就我所知,Heroku动态地将$PORT变量分配给有效的自由端口。

我的猜测是,Faye要么在另一个端口上开始,要么根本不开始。

答案 1 :(得分:0)

看起来faye正常运行。尝试访问http://localhost:{PORT}/faye.js以查看它是否正在响应。它应该与JS一起回来。调用faye服务器时,请确保使用正确的端口。一旦你开始提出请求,你就应该看到领工正在唾弃faye日志。

答案 2 :(得分:0)

这是Foreman的missing output问题。

  

如果您没有看到程序的任何输出,则可能会缓冲stdout。许多语言(如Ruby和Python)默认缓冲stdout

Faye没有设置$stdout.sync = true,因此缺少输出。

前段时间我遇到了同样的问题并尝试修复它,但我的pull request被拒绝了。

相关问题