2013-03-13 88 views
4

我正在尝试与工头启动faye。我procfile lookd这样的:Faye服务器未由工头启动

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

网页,工人和Redis的服务器的所有正常启动,但不是王菲服务器。

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

,然后仅此而已。

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

+0

您好,您选择的解决方案是什么? – Amir 2014-12-20 22:52:00

回答

2

当你运行这个本地:

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

rackup将使用它的默认端口,这是9292

当它在Herkou运行,它可能无法使用该端口已在使用中开始。就我所知,Heroku会动态地将$PORT变量分配给有效的空闲端口。

我的猜测是,Faye要么从一个不同的端口开始,要么根本不开始。

0

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

0

这是福尔曼的missing output的问题。

如果您没有看到来自程序的任何输出,有可能是缓冲stdout。很多语言如Ruby和Python默认缓冲区为stdout

Faye未设置$stdout.sync = true,因此其输出缺失。

我前段时间有同样的问题,并试图解决它,但我的pull request被拒绝。