2011-11-11 46 views
9

Tôi đã tìm kiếm tài liệu và các địa điểm khác trực tuyến và dường như không thể tìm ra cách thích hợp để đặt tùy chọn thời gian chờ cho Faraday. Có ai có câu trả lời không?Thời gian chờ của Faraday

Tôi đã thử:

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 

Không có gì dường như được làm việc. BTW, tôi đang sử dụng bộ điều hợp Typhoeus nếu điều đó tạo nên sự khác biệt.

Trả lời

14

Có vẻ như tôi đã tìm ra. Nếu tôi vượt qua tùy chọn thời gian chờ vào initializer, có vẻ như để làm việc:

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

Câu trả lời mới hơn một chút, https://github.com/lostisland/faraday/issues/417 – Andrew

10

Các Faraday README hiện chứa ví dụ này sử dụng một phong cách khối:

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 

Nếu điều này không làm việc cho bạn, có lẽ bạn nên nộp vé trên Github.

+0

Câu hỏi ban đầu dường như hỏi về thời gian chờ chung, thay vì thời gian chờ theo yêu cầu mà ở trên đề cập đến . –

Các vấn đề liên quan