1

我在生产代码中使用机械化的简单请求遇到了这个问题,在本地工作中可以,但在生产环境中没有,你能帮我吗?谢谢。

agent = Mechanize.new

agent.log = Logger.new $stderr

agent.agent.http.debug_output = $stderr

page = agent.get "THE_URL_EXAMPLE"

我收到此错误:

在 54261840 上的 0 个请求后,连接重置过多(由于到达文件结尾 - EOFError),最后一次使用 1491919097.3684318 秒前我正在使用 ruby​​ 2.0.0 并机械化 2.7.5

我尝试将keep_alive更改为false,添加idle_timeout,此代码:http ://scottwb.com/blog/2013/11/09/defeating-the-infamous-mechanize-too-many-connection-resets-bug/但是没有任何工作。

2.0.0 :119 > page = agent.get uri
Net::HTTP::Get: MY_ACTION_EXAMPLE
request-header: accept-encoding => gzip,deflate,identity
request-header: accept => /
request-header: user-agent => Mechanize/2.7.5 Ruby/2.0.0p451 (http://github.com/sparklemotion/mechanize/)
request-header: connection => close
request-header: accept-charset => ISO-8859-1,utf-8;q=0.7,*;q=0.7
request-header: accept-language => en-us,en;q=0.5
request-header: host => MY_HOST_EXAMPLE
request-header: x-requested-with => XMLHttpRequest
opening connection to MY_HOST_EXAMPLE:80...
opened
<- "GET MY_ACTION_EXAMPLE HTTP/1.1\r\nAccept-Encoding: gzip,deflate,identity\r\nAccept: /\r\nUser-Agent: Mechanize/2.7.5 Ruby/2.0.0p451 (http://github.com/sparklemotion/mechanize/)\r\nConnection: close\r\nAccept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\r\nAccept-Language: en-us,en;q=0.5\r\nHost: MY_HOST_EXAMPLE\r\nX-Requested-With: XMLHttpRequest\r\n\r\n"
Conn close because of error end of file reached, and retry
opening connection to MY_HOST_EXAMPLE:80...
opened
<- "GET MY_ACTION_EXAMPLE HTTP/1.1\r\nAccept-Encoding: gzip,deflate,identity\r\nAccept: /\r\nUser-Agent: Mechanize/2.7.5 Ruby/2.0.0p451 (http://github.com/sparklemotion/mechanize/)\r\nConnection: close\r\nAccept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\r\nAccept-Language: en-us,en;q=0.5\r\nHost: MY_HOST_EXAMPLE\r\nX-Requested-With: XMLHttpRequest\r\n\r\n"
Conn close because of error end of file reached
Conn close because of error end of file reached
Net::HTTP::Persistent::Error: too many connection resets (due to end of file reached - EOFError) after 0 requests on 67857800, last used 1491937635.2713494 seconds ago
    from /usr/local/rvm/rubies/ruby-2.0.0-p451/lib/ruby/2.0.0/net/protocol.rb:153:in `read_nonblock'
    from /usr/local/rvm/rubies/ruby-2.0.0-p451/lib/ruby/2.0.0/net/protocol.rb:153:in `rbuf_fill'
    from /usr/local/rvm/rubies/ruby-2.0.0-p451/lib/ruby/2.0.0/net/protocol.rb:134:in `readuntil'
    from /usr/local/rvm/rubies/ruby-2.0.0-p451/lib/ruby/2.0.0/net/protocol.rb:144:in `readline'
    from /usr/local/rvm/rubies/ruby-2.0.0-p451/lib/ruby/2.0.0/net/http/response.rb:39:in `read_status_line'
    from /usr/local/rvm/rubies/ruby-2.0.0-p451/lib/ruby/2.0.0/net/http/response.rb:28:in `read_new'
    from /usr/local/rvm/rubies/ruby-2.0.0-p451/lib/ruby/2.0.0/net/http.rb:1406:in `block in transport_request'
    from /usr/local/rvm/rubies/ruby-2.0.0-p451/lib/ruby/2.0.0/net/http.rb:1403:in `catch'
    from /usr/local/rvm/rubies/ruby-2.0.0-p451/lib/ruby/2.0.0/net/http.rb:1403:in `transport_request'
    from /usr/local/rvm/rubies/ruby-2.0.0-p451/lib/ruby/2.0.0/net/http.rb:1376:in `request'
    from /home/deploy/www/shared/bundle/ruby/2.0.0/gems/net-http-persistent-2.9.4/lib/net/http/persistent.rb:999:in `request'
    from /home/deploy/www/shared/bundle/ruby/2.0.0/gems/mechanize-2.7.5/lib/mechanize/http/agent.rb:274:in `fetch'
    from /home/deploy/www/shared/bundle/ruby/2.0.0/gems/mechanize-2.7.5/lib/mechanize.rb:464:in `get'
    from (irb):119
    from /home/deploy/www/shared/bundle/ruby/2.0.0/gems/railties-3.2.13/lib/rails/commands/console.rb:47:in `start'
    from /home/deploy/www/shared/bundle/ruby/2.0.0/gems/railties-3.2.13/lib/rails/commands/console.rb:8:in `start'
    from /home/deploy/www/shared/bundle/ruby/2.0.0/gems/railties-3.2.13/lib/rails/commands.rb:41:in `<top (required)>'
    from script/rails:6:in `require'
    from script/rails:6:in `<main>'2.0.0 :120 >

而且只有那个网址是最奇怪的..

请帮我。谢谢。

4

0 回答 0