2013-03-13 125 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被拒絕。