10 Stimmen

Faraday-Zeitüberschreitung

Ich habe in den Dokumenten und an anderen Stellen im Internet nachgeschaut, aber ich finde nicht den richtigen Weg, um die Timeout-Option für Faraday einzustellen. Hat jemand die Antwort?

Ich habe es versucht:

  conn = FaradayStack.build(url)
  conn.headers[:user_agent]   = AppConfig.user_agent
  # conn.options[:timeout]      = 20
  # conn.options[:open_timeout] = 20
  response = conn.get do |req|
    req.options = {
      :timeout      => 20,
      :open_timeout => 20
    }
  end
  response.body

Nichts scheint zu funktionieren. BTW, ich benutze den Typhoeus-Adapter, wenn das einen Unterschied macht.

14voto

Michael Irwin Punkte 3069

Nun, es scheint, ich habe es herausgefunden. Wenn ich die Timeout-Option in den Initialisierer übergeben, scheint es zu funktionieren:

  options = {
    :timeout      => 20,
    :open_timeout => 20
  }
  conn = FaradayStack.build(url, options)
  conn.headers[:user_agent] = AppConfig.user_agent
  conn.get.body

11voto

David J. Punkte 29769

En Faraday README enthält derzeit dieses Beispiel mit einem Blockstil:

conn.get do |req|
  req.url '/search'
  req.options[:timeout] = 5           # open/read timeout in seconds
  req.options[:open_timeout] = 2      # connection open timeout in seconds
end

Wenn dies bei Ihnen nicht funktioniert, sollten Sie vielleicht ein Ticket auf Github einreichen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X