У меня есть два приложения Rails, которые общаются через HTTP.
Приложение, которое должно принимать запросы, требует много времени для ответа.Я ожидаю, что, поэтому, используя мой предпочтительный метод запроса (предоставляемый гемом httparty
), я увеличу время ожидания и отправлю запрос:
HTTParty.get("https://example.com", :timeout => 99999)
Примерно через прибл.Через 2 минуты запрашивающее приложение вызывает ошибку EOFError: end of file reached
со следующей трассировкой стека:
from .rvm/rubies/ruby-2.2.2/lib/ruby/2.2.0/net/protocol.rb:153:in `read_nonblock'
from .rvm/rubies/ruby-2.2.2/lib/ruby/2.2.0/net/protocol.rb:153:in `rbuf_fill'
from .rvm/rubies/ruby-2.2.2/lib/ruby/2.2.0/net/protocol.rb:134:in `readuntil'
from .rvm/rubies/ruby-2.2.2/lib/ruby/2.2.0/net/protocol.rb:144:in `readline'
from .rvm/rubies/ruby-2.2.2/lib/ruby/2.2.0/net/http/response.rb:39:in `read_status_line'
from .rvm/rubies/ruby-2.2.2/lib/ruby/2.2.0/net/http/response.rb:28:in `read_new'
from .rvm/rubies/ruby-2.2.2/lib/ruby/2.2.0/net/http.rb:1414:in `block in transport_request'
from .rvm/rubies/ruby-2.2.2/lib/ruby/2.2.0/net/http.rb:1411:in `catch'
from .rvm/rubies/ruby-2.2.2/lib/ruby/2.2.0/net/http.rb:1411:in `transport_request'
from .rvm/rubies/ruby-2.2.2/lib/ruby/2.2.0/net/http.rb:1384:in `request'
from .rvm/rubies/ruby-2.2.2/lib/ruby/2.2.0/net/http.rb:1377:in `block in request'
from .rvm/rubies/ruby-2.2.2/lib/ruby/2.2.0/net/http.rb:853:in `start'
from .rvm/rubies/ruby-2.2.2/lib/ruby/2.2.0/net/http.rb:1375:in `request'
from .rvm/gems/ruby-2.2.2/gems/httparty-0.13.7/lib/httparty/request.rb:117:in `perform'
from .rvm/gems/ruby-2.2.2/gems/httparty-0.13.7/lib/httparty.rb:545:in `perform_request'
from .rvm/gems/ruby-2.2.2/gems/httparty-0.13.7/lib/httparty.rb:476:in `get'
from .rvm/gems/ruby-2.2.2/gems/httparty-0.13.7/lib/httparty.rb:583:in `get'
from (irb):14
from .rvm/gems/ruby-2.2.2/gems/railties-4.2.6/lib/rails/commands/console.rb:110:in `start'
from .rvm/gems/ruby-2.2.2/gems/railties-4.2.6/lib/rails/commands/console.rb:9:in `start'
from .rvm/gems/ruby-2.2.2/gems/railties-4.2.6/lib/rails/commands/commands_tasks.rb:68:in `console'
from .rvm/gems/ruby-2.2.2/gems/railties-4.2.6/lib/rails/commands/commands_tasks.rb:39:in `run_command!'
from .rvm/gems/ruby-2.2.2/gems/railties-4.2.6/lib/rails/commands.rb:17:in `<top (required)>'
from bin/rails:4:in `require'
Но в журнале моего принимающего приложения я вижу, что запрос все еще обрабатывается.Таким образом, запрашивающее приложение должно вызывать исключение на основе чего-то другого, например ответа.
Есть идеи, как этого избежать?