RestClient::RequestTimeout 在控制器#method ruby 上 rails
RestClient::RequestTimeout in controller#method ruby on rails
我正在提出以下休息获取请求:
rest_user = JSON.parse(RestClient.get APP_CONFIG['api_url'] + "users/", :params => {:token => APP_CONFIG['token'], :full => 'true'} )["users"]
一分钟后我收到以下错误消息:
RestClient::RequestTimeout in controller#method
rbenv/versions/1.8.7-p374/lib/ruby/gems/1.8/gems/rest-client-1.6.7/lib/restclient/request.rb:184:in `transmit'
rbenv/versions/1.8.7-p374/lib/ruby/gems/1.8/gems/rest-client-1.6.7/lib/restclient/request.rb:64:in `execute'
rbenv/versions/1.8.7-p374/lib/ruby/gems/1.8/gems/rest-client-1.6.7/lib/restclient/request.rb:33:in `execute'
rbenv/versions/1.8.7-p374/lib/ruby/gems/1.8/gems/rest-client-1.6.7/lib/restclient.rb:68:in `get'
现在,当我跟踪接收此请求的实际服务的日志时,它正在执行所请求的请求并在没有任何错误的情况下完成它。
但是消费者(Web 应用程序)在请求实际完全完成之前抛出请求超时错误。
完全正常。您的 Web 应用程序会引发错误,因为如果 RestClient
尚未收到响应,它会在 60 秒后引发错误。
您调用的应用不知道该事实,因此它会继续处理直到完成请求所需的时间(可能需要 61 秒、70 秒...)。
url = APP_CONFIG['api_url'] + "users/"
payload = {:token => APP_CONFIG['token'], :full => 'true'}
RestClient::Execute.execute(method: :get, url: url, payload: payload, timeout: 120)
我正在提出以下休息获取请求:
rest_user = JSON.parse(RestClient.get APP_CONFIG['api_url'] + "users/", :params => {:token => APP_CONFIG['token'], :full => 'true'} )["users"]
一分钟后我收到以下错误消息:
RestClient::RequestTimeout in controller#method
rbenv/versions/1.8.7-p374/lib/ruby/gems/1.8/gems/rest-client-1.6.7/lib/restclient/request.rb:184:in `transmit'
rbenv/versions/1.8.7-p374/lib/ruby/gems/1.8/gems/rest-client-1.6.7/lib/restclient/request.rb:64:in `execute'
rbenv/versions/1.8.7-p374/lib/ruby/gems/1.8/gems/rest-client-1.6.7/lib/restclient/request.rb:33:in `execute'
rbenv/versions/1.8.7-p374/lib/ruby/gems/1.8/gems/rest-client-1.6.7/lib/restclient.rb:68:in `get'
现在,当我跟踪接收此请求的实际服务的日志时,它正在执行所请求的请求并在没有任何错误的情况下完成它。
但是消费者(Web 应用程序)在请求实际完全完成之前抛出请求超时错误。
完全正常。您的 Web 应用程序会引发错误,因为如果 RestClient
尚未收到响应,它会在 60 秒后引发错误。
您调用的应用不知道该事实,因此它会继续处理直到完成请求所需的时间(可能需要 61 秒、70 秒...)。
url = APP_CONFIG['api_url'] + "users/"
payload = {:token => APP_CONFIG['token'], :full => 'true'}
RestClient::Execute.execute(method: :get, url: url, payload: payload, timeout: 120)