我在heroku部署了一个sinatra应用程序,并且我已经将网络缩放到3个dynos,因此请求由 web.1 web.2和 web.3 respoectively。 我想在ruby中知道,从一个控制器动作中,当前请求由哪个dyno提供,然后想要将其保存在数据库中。我做了一些谷歌,但没有找到任何满意的答案。
非常感谢任何帮助。
由于
答案 0 :(得分:0)
真的没有办法知道这一点。您没有从Heroku获得任何指定哪个Dyno正在处理请求的HTTP头,因此无法分辨。您可以做的最好的事情是让Heroku将所有日志传输到某处(syslog drain),以便您可以解析日志文件并将请求URI与Dynos匹配。
答案 1 :(得分:0)
使用工作进程启动时可能有一种非常黑客的方法。
heroku logs --tail
的输出,有关示例,请参阅https://github.com/dblock/heroku-commander。工人读取日志。你不得不怀疑为什么你需要知道你是“web.1”。为什么它不能是唯一的UUID,比如机器的MAC地址?