Получение «спасения в rbuf_fill»: Timeout::Error при использовании httparty с посредником ruby

Итак, я делаю вызов API, время ожидания которого истекает, хотя я установил время ожидания 1000 секунд, его время ожидания истекает через 30, моя реализация, вероятно, неверна.

require 'HTTParty'
require 'json'


class Api
    include HTTParty
    default_timeout 1000

    @@Json

    def initialize(api_root_url, code)
        response = HTTParty.get("#{api_root_url}/api/page/"+code)
        @@Json = JSON.parse(response.body)
    end
end

ошибка

/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/net/protocol.rb:146:in rescue in rbuf_fill': Timeout::Error (Timeout::Error) from .rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/net/protocol.rb:140:inrbuf_fill' из .rbenv/versions/1.9.3-p194/lib/ruby/1.9.1 /net/protocol.rb:122:in readuntil' from .rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/net/protocol.rb:132:inreadline' из .rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/net/http.rb:2562:in read_status_line' from .rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/net/http.rb:2551:inread_new' из .rbenv/versions/1.9 .3-p194/lib/ruby/1.9.1/net/http.rb:1319:in block in transport_request' from .rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/net/http.rb:1316:incatch из .rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/net/http.rb: 1316: в transport_request' from .rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/net/http.rb:1293:inrequest' из .rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/net/http.rb:1286: в block in request' from .rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/net/http.rb:745:instart' из .rbenv/versions/1.9.3-p194/lib/ ruby/1.9.1/net/http.rb:1284:в `запросе'

заранее спасибо


person Endanger    schedule 16.08.2013    source источник


Ответы (1)


Попробуйте вместо этого установить default_timeout:

http://rdoc.info/github/jnunemaker/httparty/HTTParty/ClassMethods#default_timeout-instance_method

person bhollis    schedule 16.08.2013