首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ruby rest-client:让它永远不超时?

ruby rest-client:让它永远不超时?
EN

Stack Overflow用户
提问于 2010-12-14 11:11:45
回答 6查看 26.8K关注 0票数 18

我正在尝试使用ruby rest-client将大量图片上传到我正在编写的网站。我的代码看起来像这样:

代码语言:javascript
复制
RestClient.post url, :timeout => 90000000, :open_timeout => 90000000, :file_param => file_obj

然而,我得到了这个错误:

代码语言:javascript
复制
RestClient::RequestTimeout: Request Timeout
    from /Library/Ruby/Gems/1.8/gems/rest-client-1.6.1/lib/restclient/request.rb:174:in `transmit'
    from /Library/Ruby/

但当我查看服务器日志时

代码语言:javascript
复制
Completed in 61493ms (View: 2, DB: 1) | 201 Created 

因此,似乎没有任何原因导致此操作超时。谁知道有没有我没有正确设置的超时参数?

谢谢

EN

回答 6

Stack Overflow用户

发布于 2011-03-27 05:23:41

此语法将超时设置为请求头(请参阅RestClient.post签名),如果要使用超时参数,则必须使用:

代码语言:javascript
复制
RestClient::Request.execute(:method => :post, :url => @url, :timeout => 90000000)

请参阅:https://github.com/rest-client/rest-client/blob/master/lib/restclient/request.rb#L12

票数 22
EN

Stack Overflow用户

发布于 2012-07-26 05:07:57

查看文件,可以通过-1 \f25 RestClient.execute timeout -1\f6参数传递:

代码语言:javascript
复制
# * :timeout and :open_timeout passing in -1 will disable the timeout by setting the corresponding net timeout values to nil

它的使用方法如下:

代码语言:javascript
复制
resource = RestClient::Resource.new(
  "url",
  :timeout => -1,
  :open_timeout => -1
response = resource.get :params => {<params>}
票数 14
EN

Stack Overflow用户

发布于 2012-03-03 10:40:27

我使用了下面的代码,就像Richard指出的那样。

代码语言:javascript
复制
resource = RestClient::Resource.new "url", 
                                    :timeout => $TIMEOUT, 
                                    :open_timeout => $OPEN_TIMEOUT

response = resource.get  :params => { ..... }
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4435538

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档