基于Heroku (Net:HTTP)的HTTP状态请求优化



我在heroku上运行一个应用程序,用户可以获得几个url的HTTP状态(200,301,404等),他们可以粘贴到表单上。

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

  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

目前我正在使用。Net:HTTP,它似乎很重。有什么我可以改变我的代码或任何其他宝石,我可以用一个更有效(快速)的方式获得HTTP状态/头?

我注意到了response.body持有我不需要的页面的整个HTML源代码。这是默认情况下加载到响应对象上的吗?

如果这是最有效的方式来检查HTTP状态,你同意这需要成为一个后台工作吗?

任何关于宝石的参考,工作更快,阅读材料和思想更受欢迎!

如果一个请求花费的时间超过30秒,那么这个请求就超时了,如图所示。这完全取决于另一端服务器的响应速度。例如,假设它本身是一个Heroku应用程序,那么它可能需要10秒来解除应用程序,因此只剩下20秒来测试其他url。

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

相关内容

最新更新