http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 19749|回复: 43

[其他] timeout问题

[复制链接]
发表于 2014-12-29 21:10:05 | 显示全部楼层 |阅读模式
1金钱
请教各位高手,如果timeout设置为10秒,在GetResponse初对方没有响应,但是在中途比如5秒的时候有相应,这时能返回Status OK吗?还是会等到10秒返回一个“连接超时”?还有这个与KeepAlive设置有无关系?



1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2014-12-29 21:34:45 | 显示全部楼层
timeout是超时时长,超过这个时间没收到响应,就做超时处理了。中途有信息反馈,就不会超时。timeout是个阀值。
回复

使用道具 举报

 楼主| 发表于 2014-12-29 21:46:09 | 显示全部楼层
本帖最后由 2949497060 于 2014-12-29 21:47 编辑
水手 发表于 2014-12-29 21:34
timeout是超时时长,超过这个时间没收到响应,就做超时处理了。中途有信息反馈,就不会超时。timeout是个阀 ...

比如刚开始,对方网页拒绝访问,中途才允许访问,那么在刚开始的时候不会返回错误,会等到中途允许访问就马上获取到响应吗?还是说一直到timeout才返回错误,它的拒绝访问就像这种 QQ图片20141229214640.jpg
回复

使用道具 举报

 楼主| 发表于 2014-12-29 21:52:28 | 显示全部楼层
水手 发表于 2014-12-29 21:34
timeout是超时时长,超过这个时间没收到响应,就做超时处理了。中途有信息反馈,就不会超时。timeout是个阀 ...

如果中途有响应到可以访问就马上返回值当然就好,那就只要把timeout设置尽量长一点,但是我又担心它是在timeout结束的时候才返回响应,那就不能最快的获取到值,所以比较纠结,还望水手兄指点
回复

使用道具 举报

发表于 2014-12-30 15:41:23 | 显示全部楼层
当然能接收了。  如果超时设为10s,5秒的时候来了消息,是能够正常处理的。
回复

使用道具 举报

 楼主| 发表于 2014-12-30 16:18:19 | 显示全部楼层
本帖最后由 2949497060 于 2014-12-30 16:19 编辑
scy251147 发表于 2014-12-30 15:41
当然能接收了。  如果超时设为10s,5秒的时候来了消息,是能够正常处理的。

嗯,了解,抽个时间测试一下这种情况,另外,有时我设置timeout为3秒,但是超过3秒后一段时间才返回值,而且是成功的,是怎么回事呢?如果我想3秒必须返回响应,不能超过3秒,不管是成功还是失败都返回,这种要怎么弄呢?是否需要另外开一个线程强制去close这个response呢?
回复

使用道具 举报

发表于 2014-12-31 09:56:13 | 显示全部楼层
2949497060 发表于 2014-12-29 21:52
如果中途有响应到可以访问就马上返回值当然就好,那就只要把timeout设置尽量长一点,但是我又担心它是在t ...

timeout就是一个通讯等待时间。超过这个时长无反馈,就会标记为 WebExceptionStatus.Timeout。具体需要等待多久, 自己决定。然后可以根据反馈状态进行处理。
回复

使用道具 举报

发表于 2014-12-31 09:56:17 | 显示全部楼层
2949497060 发表于 2014-12-29 21:52
如果中途有响应到可以访问就马上返回值当然就好,那就只要把timeout设置尽量长一点,但是我又担心它是在t ...

timeout就是一个通讯等待时间。超过这个时长无反馈,就会标记为 WebExceptionStatus.Timeout。具体需要等待多久, 自己决定。然后可以根据反馈状态进行处理。
回复

使用道具 举报

 楼主| 发表于 2014-12-31 10:01:42 | 显示全部楼层
水手 发表于 2014-12-31 09:56
timeout就是一个通讯等待时间。超过这个时长无反馈,就会标记为 WebExceptionStatus.Timeout。具体需要等 ...

那请问这种情况呢,有时我设置timeout为3秒,但是超过3秒后一段时间才返回值,而且是成功的,是怎么回事呢?如果我想3秒必须返回响应,不能超过3秒,不管是成功还是失败都返回,这种要怎么弄呢?是否需要另外开一个线程强制去close这个response呢?
回复

使用道具 举报

发表于 2014-12-31 10:05:33 | 显示全部楼层
2949497060 发表于 2014-12-31 10:01
那请问这种情况呢,有时我设置timeout为3秒,但是超过3秒后一段时间才返回值,而且是成功的,是怎么回事 ...

你设置3秒,就表示你认为超过3秒没响应就要设置问超时状态。设置为3秒后,3秒内服务器没响应就会作为超时处理。“3秒内必须返回响应”这个是服务器端处理、网络通讯等多种因素影响的。程序控制不了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-5-20 21:36

© 2014-2021

快速回复 返回顶部 返回列表