4

私はフォアマンでフェイを始めようとしています。私の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

そして、フェイからは何もありません。

procfile: のコマンドを使用して faye サーバーを実行すると、fayebundle exec rackup faye.ru -s thin -E productionは正しく起動します。私は何を間違っていますか?

4

3 に答える 3

2

これをローカルで実行すると:

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

rackupデフォルトのポートである 9292 を使用します。

Herkou で実行すると、そのポートが既に使用されていると起動しない場合があります。Heroku は$PORT、私が知る限り、変数を有効な空きポートに動的に割り当てます。

私の推測では、Faye は別のポートで起動しているか、まったく起動していません。

于 2013-03-22T16:38:56.190 に答える
0

フェイは正常に動作しているようです。http://localhost:{PORT}/faye.jsそれが応答しているかどうかを確認するために訪問してみてください。JSで戻ってくるはずです。fayeサーバーを呼び出すときは、正しいポートを使用していることを確認してください。リクエストを開始すると、フォアマンがフェイログを吐き出しているのが見えるはずです。

于 2013-03-22T12:38:37.153 に答える
0

これは Foreman の欠落した出力の問題です。

プログラムからの出力が表示されない場合は、バッファリングしている可能性がありますstdout。Ruby や Python などの多くの言語stdoutはデフォルトでバッファリングされます。

Faye は設定されていない$stdout.sync = trueため、出力がありません。

しばらく前に同じ問題が発生し、修正しようとしましたが、プル リクエストが拒否されました。

于 2013-03-22T17:29:21.400 に答える