如何在 Ruby 的 RestClient gem 中设置超时?

Posted

技术标签:

【中文标题】如何在 Ruby 的 RestClient gem 中设置超时?【英文标题】:How to set timeout in RestClient gem in Ruby? 【发布时间】:2012-05-16 00:57:20 【问题描述】:

我正在使用 RestClient gem,通过它对服务器进行 get 调用。问题是如何从客户端设置超时。

RestClient.get "http://127.0.0.1:7819/tokenize/word/***"

我想设置为 10 秒。

提前致谢!!

【问题讨论】:

【参考方案1】:

你不需要修改任何东西。你可以直接使用RestClient::Request,比如:

RestClient::Request.execute(:method => :get, :url => url, :timeout => 10, :open_timeout => 10)

但请记住,最坏的情况是 20 秒。

查看其他帖子的答案https://***.com/a/5445421/565999

【讨论】:

这应该是答案——恐怕我必须断言猴子补丁是邪恶的,因为它们具有意想不到的副作用。 nit:如果这两个值相同,则不必同时指定 timeout 和 open_timeout。超时值将用于 read_timeout 和 open_timeout。 github.com/rest-client/rest-client/blob/… 使用RestClient::Resource时,可以试试RestClient::Resource.new('http://slow', :timeout => 10)

以上是关于如何在 Ruby 的 RestClient gem 中设置超时?的主要内容,如果未能解决你的问题,请参考以下文章

Ruby:如何写一个 gem? [关闭]

Ruby:如何安装特定版本的 ruby​​ gem?

Ruby Restclient 不同的双点或 astrophobe 并且顺序很重要

ruby ide的gem包如何安装

如何让 ruby​​-prof 忽略 Ruby 核心/标准库/gem 方法?

如何升级我的本地自定义 gem“my_gem”的 ruby​​ 版本