Un timeout assegnato dopo un tentativo di connessione non può accorciare il tentativo già avvenuto. Crea prima l'istanza Net::HTTP, imposta i suoi timeout e poi avviala.

http = Net::HTTP.new('example.com', 443,
                     '203.0.113.10', 8080)
http.use_ssl = true
http.open_timeout = 5
http.read_timeout = 10
http.start do |session|
  response = session.get('/')
end

Scegli prima l'endpoint HTTP desiderato; la lista di proxy HTTP offre candidati per richieste pubbliche consentite. I numeri sono limiti di esempio, non una raccomandazione per ogni carico di lavoro. La creazione della connessione e le letture successive hanno attese diverse. Un timeout di lettura non è una scadenza complessiva per un lavoro che esegue più richieste o continua a riprovare.

Usa la documentazione dei timeout per la versione di Ruby che distribuisci, incluse le impostazioni di scrittura e quelle specifiche di TLS dove pertinente. Un vecchio esempio che usa Net::HTTP::Proxy può creare prima una classe configurata per il proxy; i valori che contano appartengono comunque all'istanza che esegue il lavoro.

Articoli correlati