Bri*_*ong 5 port process heroku eventmachine
我有这样的Procfile:
web: bundle exec rails server -p $PORT
em: script/eventmachine
Run Code Online (Sandbox Code Playgroud)
该em过程使用start_server(端口ENV['PORT'])触发事件处理器,我的Web进程偶尔需要与之通信.
我的问题是Web进程如何知道与之通信的端口?如果我正确理解了heroku,它会在进程启动时为您分配一个随机端口(如果ps被终止或重新启动,它可以更改).谢谢!
根据 Heroku 文档,
运行在同一个 dyno 上的两个进程可以使用他们想要的任何端口通过 TCP/IP 进行通信。
运行在不同dynos上的两个进程根本无法通过 TCP/IP 进行通信。他们需要使用 memcached、数据库或 Heroku 插件之一进行通信。
进程之间是隔离的,不能直接相互通信。
http://www.12factor.net/processes
然而,还有一些其他方法。一种是使用 Redis 或 Postgres 等支持服务作为中介,另一种是使用 FIFO 进行通信。
http://en.wikipedia.org/wiki/FIFO
您的进程是隔离的并且不共享任何内容,这是一件好事,但是您确实需要稍微不同地构建应用程序以适应这一点。
| 归档时间: |
|
| 查看次数: |
3403 次 |
| 最近记录: |