Go问答技术文章
-
Golang · Go问答 | 5天前 | Context · HTTP客户端 · Go问答 · Go请求超时 Go clienttimeout http.Client Timeout Go客户端超时 Transport阶段超时
本文解释 Go http.Client.Timeout 的总时限范围,并用请求级 context 与 Transport 阶段参数区分不同客户端边界。338 收藏 -
Go 请求同时设置 http.Client.Timeout 和 context.WithTimeout 时,最早到期的边界会取消请求。本文用截止时间、错误类型和受控实验判断超时来源,并给出生产环境的配置取舍。465 收藏 -
Golang · Go问答 | 5天前 | 错误处理 · net/http · HTTP客户端 · Go问答 · Go clienttimeout http.Client Timeout Go 请求超时 Go url.Error 超时 Go HTTP 客户端时限
Go 的 clienttimeout 通常对应 http.Client.Timeout。本文说明它覆盖的请求范围、如何从 client.Do 返回值中判断超时,以及它与 context 和 Transport 分段时限的区别。351 收藏 -
Go errgroup 的并发上限和取消传播是两套机制。本文用 WithContext、SetLimit、TryGo 和 Wait 说明任务组的取消边界、提交背压与待处理任务的收口方法。292 收藏 -
用 errgroup.WithContext、SetLimit、TryGo 和 Wait 处理 Go 并发读取与转换任务,讲清并发上限、错误取消、结果收口和常见边界。327 收藏 -
Go time.After 适合做一次等待的超时分支,但固定时长不能自动代表整轮任务的截止时间。本文用绝对 deadline 和 time.Until 计算剩余预算,说明如何在 select 中同时处理结果、取消与超时。377 收藏 -
Golang · Go问答 | 5天前 | select · time.After · Go问答 · Go time.After 循环 Go timeafter 出错 Go 定时器增长 Go NewTimer Reset Go select 超时
循环中反复调用 time.After 可能让分配和未触发计时器数量持续上升。本文区分 Go 1.23 前后的回收边界,给出可复用 Timer 的 Stop、排空与 Reset 写法,并说明什么时候应换成 Ticker 或 context.WithTimeout。222 收藏 -
Golang · Go问答 | 5天前 | channel · 定时器 · select · time.After · Go问答 · Go timeafter怎么处理 Go time.After定时器 Go time.After循环 Go定时器读取 Go NewTimer与NewTicker
解释 Go time.After 返回值、循环等待与 time.Time 转换,比较 NewTimer 和 NewTicker 的使用边界,帮助排查定时器读取问题。451 收藏 -
Go 的 context.WithDeadline 只能把子 context 的截止时间收紧,不能延长父请求预算。本文说明 Done、Err、cancel 如何传播,以及为什么取消不会强行终止未监听 context 的 goroutine。152 收藏 -
context.WithDeadlineCause 超时后,ctx.Err() 通常只返回 context deadline exceeded,具体原因要用 context.Cause(ctx) 读取;本文同时说明提前 cancel 和父上下文先取消时的边界。205 收藏 -
Go Context 的 Deadline 返回绝对时间和 ok 标志。本文用代码说明如何读取截止时间、换算剩余预算,并区分超时、取消与父子 Context 的期限边界。246 收藏 -
Go select 加 default 可以做一次非阻塞检查,但不应把它直接放进无节制的循环。本文用状态返回、阻塞等待、ticker 和 context 取消四种边界,说明 default 的适用范围与常见误区。117 收藏 -
Go select 中 default 被选中通常不是分支抢先,而是其他通信 case 当下都无法立即完成。本文按 nil 通道、缓冲状态、发送接收配对和循环忙轮询逐层排查,并给出可落地的修正方式。370 收藏 -
Go 的 select default 只负责非阻塞选择,不负责等待取消。本文用 worker、ctx.Done、关闭 channel 和 ok 判断说明正确处理取消信号的方法。318 收藏 -
Go 的 range channel 不会自行判断生产完成,只有通道关闭并读完已发送值后才会结束。本文用发送方、协调者和消费者三种责任划分,说明多生产者安全 close、取消退出以及常见死锁的排查方法。242 收藏