Context
已收录文章:25篇
-
Golang · Go问答 | 3星期前 | 超时 · 错误处理 · go · Context · errors.Is Go context deadline exceeded WithCancelCauseGo 服务里看到 context deadline exceeded,不代表所有请求都只是超时。本文从上游主动取消、下游调用超时和本地截止时间三种现场出发,演示 WithCancelCause、Cause 与 errors.Is 的判断顺序,让日志能指出真正的中断来源。309 收藏
-
Golang · Go问答 | 1个月前 | goroutine · Context · Go问答 · 排查清单 · 服务超时 · goroutine泄漏 context.WithTimeout Go问答 CancelFunc Go context取消 Go服务超时Go 服务已经返回超时,但后台 goroutine 仍在消耗连接和内存,往往不是超时参数太小,而是取消信号没有沿调用链传递或 CancelFunc 没有及时调用。本文给出从症状判断、代码修复到告警复盘的排查清单。304 收藏
-
Golang · Go教程 | 2个月前 | errgroup · go · Context · 并发编程 · SetLimit · Go 并发任务 errgroup SetLimit context取消Go 后端经常需要并发查询多份数据。本文按完整工作流拆解 errgroup.WithContext、错误取消、SetLimit 控制并发、互斥收集结果和 Wait 统一检查,避免任务失控。301 收藏
-
Golang · Go问答 | 1个月前 | 中间件 · Context · Go问答 · 架构模式 · 代码边界 · 中间件 context Context.Value Go问答 WithValue 请求作用域 业务参数Go context 可以放用户 ID、traceID 这类请求作用域值,但不适合替代函数参数。本文用中间件、Service 和 Repository 的边界示例说明怎么判断。269 收藏
-
Golang · Go问答 | 1星期前 | 并发 · 单元测试 · go · Context · AfterFunc · Go问答 context.AfterFunc context.CancelFunc Go回调Go 的 context.AfterFunc 适合在上下文取消后触发清理动作,但 Stop 返回 false 时回调可能已经开始或即将开始。本文用超时清理场景说明回调生命周期、竞态窗口、幂等保护和测试验收边界。258 收藏
-
科技周边 · 人工智能 | 1星期前 | go · Context · 流式处理 · 人工智能 · openai api · sse · 重试 · OpenAI Go context 流式输出 SSE Responses API 断线重试Go 服务接入 OpenAI Responses API 的流式输出时,真正难的是事件边界、重复片段、断线重试和请求取消。本文用官方 openai-go SDK 拆解 SSE 事件,给出增量文本拼接、单次重试边界和 context 超时处理的最小流程。236 收藏
-
context.AfterFunc 适合把取消信号转换成资源清理回调,但 Stop 返回 false 时回调可能已经启动,不能把它当成完成通知。本文从旧式 done 监听迁移到 AfterFunc,拆解取消、停止、同步和测试边界。224 收藏
-
Golang · Go教程 | 1个月前 | Context · 超时控制 · Go教程 · http.Client · Transport · Go context 请求超时 Transport http.Client Client.Timeout ResponseHeaderTimeoutGo HTTP 客户端超时不要只靠一个 context 或一个 Client.Timeout。更稳的做法是把总预算、连接、TLS 握手、响应头和读取阶段分开设置,再用错误判断和日志字段确认到底卡在哪一段。218 收藏
-
Golang · Go教程 | 2个月前 | errgroup · Context · Go教程 · 后端工程 · Golang实战 · 并发治理 · golang Go 并发编程 错误处理 context errgroup 后端工程 生产实践 SetLimit从批量调用下游接口的并发扇出场景出发,讲清 errgroup.WithContext、Go、Wait、SetLimit、TryGo、错误传播、Context 取消和结果聚合的生产写法。197 收藏
-
Golang · Go教程 | 2个月前 | goroutine · Context · 超时控制 · Go教程 · 后端开发 · Go Goroutine context 超时控制 WithTimeout Done QueryContext本文用完整工作流讲解 Go context 超时控制:从 HTTP 入口创建超时预算,把 ctx 传给 DB 查询和远程请求,到 goroutine 监听 Done、及时退出并释放资源,最后给出验证和上线清单。166 收藏
-
Golang · Go问答 | 1个月前 | goroutine · Context · 超时控制 · Go问答 · 协程泄漏 · Go Goroutine 超时控制 context.WithTimeout 取消信号 协程泄漏 ctx.Donecontext.WithTimeout 只会在到期后关闭 Done 通道并返回取消原因,不会直接停掉 goroutine。Go 代码要把 ctx 传进阻塞调用,并在 select、循环和清理逻辑里主动响应取消信号。147 收藏
-
Golang · Go问答 | 1个月前 | goroutine · HTTP · Context · 超时控制 · Go问答 · WithTimeout Go问答 context取消 QueryContext HTTP请求取消 goroutine退出Go HTTP 请求断开后,r.Context() 会收到取消信号,但服务端慢任务不会凭空停止。只有把 context 继续传给数据库、下游 HTTP 调用、消息消费和 goroutine,取消与超时才会真正变成资源释放动作。120 收藏