Ruby on rails 优化Heroku上的HTTP状态请求(Net:HTTP)

Ruby on rails 优化Heroku上的HTTP状态请求(Net:HTTP),ruby-on-rails,ruby,heroku,http-status-codes,net-http,Ruby On Rails,Ruby,Heroku,Http Status Codes,Net Http,我在heroku上运行了一个应用程序,用户可以从中获取几个URL的HTTP状态(200301404等),然后将这些URL粘贴到表单上 虽然它在我的本地rails服务器上运行良好,但当我在heroku上上传它时,我无法检查超过30个URL(我想检查200个),因为heroku在30秒后超时,给了我一个错误 目前我正在使用Net:HTTP,它看起来很重。我是否可以对代码或任何其他gem进行任何更改,以便以更高效(快速)的方式获取HTTP状态/头 我注意到 response.body保存我不需要的页面

我在heroku上运行了一个应用程序,用户可以从中获取几个URL的HTTP状态(200301404等),然后将这些URL粘贴到表单上

虽然它在我的本地rails服务器上运行良好,但当我在heroku上上传它时,我无法检查超过30个URL(我想检查200个),因为heroku在30秒后超时,给了我一个错误

目前我正在使用Net:HTTP,它看起来很重。我是否可以对代码或任何其他gem进行任何更改,以便以更高效(快速)的方式获取HTTP状态/头

我注意到
response.body
保存我不需要的页面的整个HTML源代码。默认情况下,这是否加载到响应对象上

如果这是检查HTTP状态最有效的方法,您是否同意这需要成为后台作业


任何关于工作更快的宝石的参考资料,阅读材料和想法都是非常受欢迎的

如果一个请求花费的时间超过30秒,那么该请求将超时,正如您在这里看到的那样。您完全取决于另一端的服务器响应速度。例如,如果假设它本身是1 dyno上的Heroku应用程序,那么可能需要10秒来统一该应用程序,因此只剩下20秒来测试其他URL


我建议您将每个检查移动到它自己的后台作业,然后轮询这些作业,以了解它们何时完成,并相应地更新UI。

感谢您回复John,我将尝试!并行运行多个请求是否有帮助(是否可能)?
  def gethttpresponse(url)
  httpstatusarray = Hash.new

    uri = URI.parse(url)
    http = Net::HTTP.new(uri.host, uri.port) 
    request = Net::HTTP::Get.new(uri.request_uri)
    response = http.request(request)
    httpstatusarray['url'] = url
    httpstatusarray['status'] = response.code               
   return httpstatusarray

  end