23t*_*tux 5 ruby http net-http
我注意到,当 http 请求超时时,Ruby (2.6.1) 会发出第二个请求。这会导致我们的端点之一出现问题,因为触发了第二个工作线程,从而占用了资源。
您可以在此处查看示例:转到https://beeceptor.com/console/timeout并运行以下代码
require "net/http"
http = Net::HTTP.new("timeout.free.beeceptor.com", 443)
http.read_timeout = 1
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_PEER
http.request(Net::HTTP::Get.new("/Time"))
Run Code Online (Sandbox Code Playgroud)
你可以看到有 2 个请求/Time,所以我想知道:
curl --max-time 1 https://timeout.free.beeceptor.com它的一个功能是Net::HTTP重试幂等请求。您可以通过设置(在您的情况下为 0)来限制重试次数max_retries。
有关该问题的更多信息,请参见Ruby redmine
require "net/http"
http = Net::HTTP.new("timeout.free.beeceptor.com", 443)
http.read_timeout = 1
http.max_retries = 0 # <<<<<<<< the change
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_PEER
http.request(Net::HTTP::Get.new("/Time"))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2504 次 |
| 最近记录: |