私はそうのようなProcfileを持っている:は、(使用するポート)
web: bundle exec rails server -p $PORT
em: script/eventmachine
em
プロセスは、(ENV['PORT']
ポート)start_server
とeventmachineを発射し、私のWebプロセスは時折通信する必要がありますそれと。
私の質問はどのようにWebプロセスがそれと通信するためのポートを知っていますか? herokuが正しく理解されていれば、プロセスが起動するときにランダムなポートが割り当てられます(psがkillまたは再起動されると変更される可能性があります)。ありがとう!
私はredisか何かでFIFOキューを行うことができましたが、プロセスが互いに通信できないことは確かですか?イベント・マシンのサーバー/クライアントは、Webプロセスが入ってくるtcpip要求を受け入れるように、標準のtcpipでお互いに会話することができます。私はちょうど接続するポートがわからない。答えをありがとう - Adam Wigginsの12factorのページは本当に面白いです。 –
はい。あなたのWebプロセスには、外部から要求を受け取るためのポートが割り当てられています。他のプロセス間通信はありません。この類似の質問を参照してください:http://stackoverflow.com/questions/9322599/tcp-socket-communication-between-processes-on-heroku-worker-dyno/9453432#9453432 –
これは役に立ちました。私はうまくいきました。耐久性はありませんが、この後にiron_mqを試して、代わりにイベントマシンからポーリングします。助けてくれてありがとう!ほんとうにありがとう。 –