Go Worker 队列入门:用 channel 和 context 处理后台任务
本文讲解 Go 中使用 channel、goroutine、WaitGroup 和 context 实现一个简单 Worker 队列,适合入门后台任务处理。
category
本文讲解 Go 中使用 channel、goroutine、WaitGroup 和 context 实现一个简单 Worker 队列,适合入门后台任务处理。
本文讲解 Go 1.21 前后 go.mod 中 go 版本和 toolchain 指令的含义,帮助初学者理解项目工具链、语言版本和团队协作。
本文讲解如何用 Go 标准库 flag.FlagSet 实现 add、list、done 这类子命令,帮助初学者组织可维护命令行工具。
本文用转账和订单扣库存示例讲解 Go database/sql 事务的基本模式,包括 BeginTx、defer Rollback、Commit 和上下文传播。
本文讲解 Go database/sql 中 NULL 值的处理方式,包括 sql.NullString、sql.NullTime、指针字段和 JSON 响应转换。
本文讲解 Go 测试覆盖率的基本命令、HTML 报告、覆盖率误区和关键业务路径测试策略,帮助初学者更有效地使用覆盖率。
本文讲解 Go HTTP 客户端 RoundTripper 的基本模式,用标准库实现外部请求日志、请求 ID、重试和超时边界。
本文讲解 Go HTTP ResponseController 的基本使用场景,包括 Flush、写入截止时间和流式响应,让初学者理解响应控制边界。
本文讲解 Go encoding/json 的流式 Decoder 和 Encoder,适合处理大 JSON 数组、日志导出和 HTTP 请求体。
本文讲解 Go 1.21 中 slices、maps 和 cmp 包的常见用法,包括克隆、比较、查找、排序和 map 复制。
本文讲解 Go pprof 在 HTTP 服务中的基本使用方式,包括启用调试端口、采集 CPU profile、查看内存分配和安全注意事项。
本文讲解 Go 1.21 标准库 log/slog 的基本使用,包括文本日志、JSON 日志、字段、With 和 HTTP 请求日志。
本文讲解 Go race detector 的基本用法,通过计数器、map 并发写入和 HTTP 指标示例说明如何发现并修复数据竞争。
本文讲解 Go 1.20 中 context.WithCancelCause 和 context.Cause 的基本用法,帮助初学者写出更容易排查的取消链路。
本文讲解 Go embed 的基本用法,包括嵌入单个文件、目录、HTML 模板和静态资源,让小型 Web 工具更容易发布。
本文讲解 Go HTTP 服务中 ReadTimeout、WriteTimeout、IdleTimeout 和请求 context 的基本用法,帮助初学者避免服务被慢请求拖住。
本文用批量校验、资源关闭和并发任务三个例子讲解 Go 1.20 errors.Join 的基本用法,帮助初学者理解多错误处理的边界。
本文讲解 Go 小型 HTTP 服务如何先做好基础可观测性,包括请求日志、健康检查、简单指标和错误边界。
本文用 Go 1.18 泛型手写 Filter、Map 和 Reduce,帮助初学者理解泛型在集合处理中的真实使用方式和边界。
本文讲解 Go 1.18 中 any 与 interface{} 的关系,说明空接口、泛型约束、类型断言和业务代码边界。