Fix broken connections in pool
This commit is contained in:
parent
7f8746fcd4
commit
202de1436d
1 changed files with 14 additions and 12 deletions
|
@ -1595,7 +1595,9 @@ struct HTTPPool
|
|||
end
|
||||
|
||||
def client(region = nil, &block)
|
||||
pool.connection do |conn|
|
||||
conn = pool.checkout
|
||||
|
||||
begin
|
||||
if region
|
||||
PROXY_LIST[region]?.try &.sample(40).each do |proxy|
|
||||
begin
|
||||
|
@ -1607,17 +1609,17 @@ struct HTTPPool
|
|||
end
|
||||
end
|
||||
|
||||
begin
|
||||
response = yield conn
|
||||
conn.unset_proxy
|
||||
response
|
||||
rescue ex
|
||||
conn = HTTPClient.new(url)
|
||||
conn.family = (url.host == "www.youtube.com") ? CONFIG.force_resolve : Socket::Family::UNSPEC
|
||||
conn.read_timeout = 5.seconds
|
||||
conn.connect_timeout = 5.seconds
|
||||
yield conn
|
||||
end
|
||||
response = yield conn
|
||||
conn.unset_proxy
|
||||
response
|
||||
rescue ex
|
||||
conn = HTTPClient.new(url)
|
||||
conn.family = (url.host == "www.youtube.com") ? CONFIG.force_resolve : Socket::Family::UNSPEC
|
||||
conn.read_timeout = 5.seconds
|
||||
conn.connect_timeout = 5.seconds
|
||||
yield conn
|
||||
ensure
|
||||
pool.checkin(conn)
|
||||
end
|
||||
end
|
||||
|
||||
|
|
Loading…
Reference in a new issue