Ruby on Rails:优化对另一台服务器的多个http请求

时间:2016-07-17 09:39:27

标签: ruby-on-rails ruby http web

我的应用代表用户向其他服务器发出http请求。这个问题涉及以最佳方式做到这一点。

应用程序可能需要尽快将许多http请求的结果(到外部服务器)返回给用户。我尽可能使用线程来优化这个。但是,我不太了解当多个用户一次使用该网站时会发生什么。奇怪的是,当我模拟一些用户同时向(本地)开发服务器发出请求时,响应时间似乎并没有受到影响。

我正在考虑创建一个对http请求进行排队并在可能的情况下处理它们的类,但是,我不知道是在App级别还是用户级别实例化它。

本地Web服务器是webrick,生产服务器是puma。

问题:

  1. 当多个用户向我的网站发出请求时会发生什么情况(对于每个请求,我的网站必须依次向其他网站发出多个请求)?
  2. 如何优化响应时间?
  3. 我的网站用户是否有可能直接向国外网站发送请求(ajax)?

1 个答案:

答案 0 :(得分:0)

逐一回答您的问题:

  1. 是的,对于每个用户请求,您的网站都会向"其他网站单独发出请求。你提到的
  2. 为此,您可以缓存/存储来自该"其他网站的响应"您在Rails缓存中提到过,并且可以重用它,具体取决于该其他服务器返回的数据的有效性和适用性。 More on Rails caching
  3. 你可以按照你想要的方式去做。但是,如果"其他网站"你提到的并不是你所拥有的,那么最好向你的服务器提出客户端请求,然后让你的服务器以最优化的方式处理响应(通过存储或缓存响应)。通过这种方式,您将始终在球场上拥有球,并且您无需担心该球场的响应是否会出现在其他球场"变化
  4. 如果这有帮助或您需要更多信息,请告诉我。