法拉第超时

时间:2011-11-11 18:53:09

标签: ruby

我在网上搜索了文档和其他地方,似乎无法想出为法拉第设置超时选项的正确方法。有人有答案吗?

我试过了:

  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

似乎没有任何效果。顺便说一下,如果有所不同,我正在使用Typhoeus适配器。

2 个答案:

答案 0 :(得分:14)

好吧,我好像弄明白了。如果我将超时选项传递给初始化程序,它似乎可以工作:

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

答案 1 :(得分:10)

Faraday README目前包含使用块样式的示例:

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

如果这对你不起作用,也许你应该在Github上提交一张票。