Ruby http/net 中连接超时问题
下面在调用币安的接口时,经常会卡住,设置连接超时也不会抛出异常,代码如下(默认连接超时为nil, 参考:https://github.com/ruby/ruby/pull/269):
require 'net/http'
require 'json'
require 'byebug'
uri = URI('https://www.binance.com/api/v1/ticker/24hr?symbol=EOSBTC')
req = Net::HTTP::Get.new(uri)
loop do
res = Net::HTTP.start(uri.hostname, uri.port, :use_ssl => uri.scheme == 'https') do |http|
http.open_timeout = 1
http.request(req)
end
puts "#{JSON.parse res.body}"
puts "http request complete."
sleep 1
end
不知道为什么,用 http.open_timeout = 1 这种设置不奏效,改为在start的options中配置即可则会超时抛出异常,如下:
res = Net::HTTP.start(uri.hostname, uri.port, :use_ssl => uri.scheme == 'https', :open_timeout => 1) do |http|
http.request(req)
end
Ruby http/net 中连接超时问题的更多相关文章
- MySQL中连接超时自动断开的解决方案
前言: MySQL数据库一般默认的连接超时时间为3600s(1小时),但是在进行大规模的线程事务操作时,一个连接会一直等待执行,这时候如果数据库的超时时间设置的过短,就可能会出现Mysql数据连接自动 ...
- 修改tnsnames.ora文件中配置内容中的连接别名后,连接超时解决办法
1.tnsnames.ora文件中配置内容中的连接别名:由upaydb修改为IP地址 2.连接超时 定位原因: PLSQL登录界面的数据库列表就是读的tnsname.ora中连接的别名,这个文件中连接 ...
- WebSphere中数据源连接池太小导致的连接超时错误记录
WebSphere中数据源连接池太小导致的连接超时错误记录. 应用连接超时错误信息: [// ::: CST] webapp E com.ibm.ws.webcontainer.webapp.WebA ...
- tcp中设置连接超时
直接上代码: 设置连接超时 //首先改成非阻塞套接字 unsigned ; int rm=ioctl(sConnect,FIONBIO,(unsigned long*)&ul); ) { pr ...
- golang中mysql建立连接超时时间timeout 测试
本文测试连接mysql的超时时间. 这里的"连接"是建立连接的意思. 连接mysql的超时时间是通过参数timeout设置的. 1.建立连接超时测试 下面例子中,设置连接超时时间为 ...
- 关于MySQL的wait_timeout连接超时问题报错解决方案
bug回顾 : 想必大家在用MySQL时都会遇到连接超时的问题,如下图所示: ### Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsExce ...
- SSRS报表连接超时的问题
这段时间遇到一个问题就是ReportService 中采用了远程连接的报表偶尔会断开连接,导致报表导出异常,查阅了很多资料,几天来就是断断续续的终于解决了这个问题,下面把一些解决的点一一展示出来,便于 ...
- (转)hbase master挂掉-zookeeper连接超时原因
link:http://www.51testing.com/?uid-445759-action-viewspace-itemid-812467 并行运行hbase删表,建表操作,多个表多个regio ...
- C# 控制连接超时
首先连接超时分为三种,TCP Connection to SQL Server -> SqlConnection.Open -> SqlCommand.Execute先说第二种超时,sql ...
随机推荐
- 码云Gitee上新建项目教程
1.在浏览器访问,https://gitee.com/: 2.使用用户名.密码登录: 3.在左下角显示当前用户的项目,点击“+”号,创建项目: 4.填写项目的相关信息,项目名称要和本地要上传的项目名称 ...
- HashTable源码简单介绍
首先是继承了字典类Dictionary, 这说明HashTable的一些找位置的实现与Dictionary有关, 看一看数据结构,是一个entry数组, Entry,这个不陌生,先看一下它的结构吧,这 ...
- Spring Boot——Linux 启动方式
1.前台启动:(ctrl+c会关闭程序) java -jar ****.jar 2.后台启动:(& 后台启动) java -jar ****.jar & 3.控制台输出启动 ...
- RF:win10跑用例过程中有中文日志会显示非中文
问题:RobotFramework在win10跑用例过程中有中文日志会显示非中文,如截图: 解决: C:\Python27\Lib\site-packages\robot\utils\unic.py ...
- 稀疏矩阵 part 1
▶ 图片参考[http://www.bu.edu/pasi/files/2011/01/NathanBell1-10-1000.pdf] ▶ 各种系数矩阵的数据结构 ● MAT,原始矩阵数据 type ...
- 再见:org.apache.catalina.connector.ClientAbortException: java.io.IOException: Connection reset by peer
这个问题我之前遇见多次了,今天又遇见了 2019-03-22 16:33:27.555 WebMvcConfigurer.java:144 ERROR - 接口 [/appservice/7za.ex ...
- QPixmap 在非QtCreator环境下无法显示jpg图片
这几天需要实现在Qt界面中显示jpg图片,于是直接将路径传给QPixmap对象,发现显示不出来. 然而在Qt SDK自带的Demo中却可以正确显示jpg图片,经搜索引擎查找发现,是自己的exe文件缺少 ...
- chrome 如何开启网页另存为.mhtml 功能
打开chrome浏览器,输入地址:chrome://flags/ 找到将网页另存为MHTML,点击启用就可以了. 或者直接输入:chrome://flags/#save-page-as-mhtml
- dojo下的dom按钮与dijit/form/Button
众所周知,在dojo里存在dom和widget两个类型,dom指的是普通类型的HTML元素,包括各种类型的标签.按钮.输入框等等,而widget指的是dojo自身所带的模板,同时也包括按钮.输入框等等 ...
- jeecg-boot 简易部署方案
jeecg-boot采用前后端分离的方案,前后端代码不在一起.想要部署 一般是通过反向代理实现. jeecg-boot目前支持更好更简单的解决方案: jeecg 在配置文件里面指定了 webapp的存 ...