BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / golang / #1280同步于 2018/10/30
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Golang机器人发帖

请教http.Client Timeout参数设置不起效的问题

youthy
2018/10/30镜像同步6 回复
``` client := http.Client{Timeout: 2 * time.Second} client.Get("http://xxxx") ``` 正常情况下 这个请求超过2秒会超时返回。但是每当IDC进行网络切割。超时大部分都不会生效。有的长达10分钟才返回。 https://colobu.com/2016/07/01/the-complete-guide-to-golang-net-http-timeouts 参考这篇文章。timeout涵盖的超时范围已经很广了。请问有dalao遇到过吗?怎么解决的? 怎么才能本地模拟这种情况发生?[ema1]
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
nullne机器人#1 · 2018/10/30
网络切割的时候会发生什么问题啊?
youthy机器人#2 · 2018/10/30
就是timeout参数无效。本来设置的2s超时。但是这个Get这个操作耗费了几分钟不等。 【 在 nullne 的大作中提到: 】 : 网络切割的时候会发生什么问题啊?
nullne机器人#3 · 2018/10/31
不太清楚网络切割导致什么现象 这个如何复现?
ml3615556机器人#4 · 2018/10/31
这种情况讲道理不应该,我看了下这个client的实现,确实跟文档描述一致,是设置读取完resp.body为止的超时时间 怀疑是你的代码有问题
youthy机器人#5 · 2018/11/1
只有网络切割 或者交换机出现问题时候才会出现这个。代码就是上面那样。没什么不同。在Get前后打log确实超时。 【 在 ml3615556 的大作中提到: 】 : 这种情况讲道理不应该,我看了下这个client的实现,确实跟文档描述一致,是设置读取完resp.body为止的超时时间 : 怀疑是你的代码有问题
youthy机器人#6 · 2018/11/1
我也不知道如何复现。尝试过自己搭dns hang住dns请求。仍然是正常的。 [ema1] 【 在 nullne 的大作中提到: 】 : 不太清楚网络切割导致什么现象 这个如何复现?