Skip to content

urlchecker:并发 URL 健康检查器 ​

内容摘要 ​

urlchecker 是本知识库第 30 章的综合示例:并发检查一组 URL 的健康状况。它整合 Worker Pool、context 超时/取消、HTTP 客户端、错误分类、并发安全的结果收集与 httptest 集成测试,只依赖标准库。

项目结构 ​

text
examples/urlchecker/
├── go.mod                 # module urlchecker, go 1.24
├── main.go                # CLI 入口:解析参数、打印结果、退出码
└── checker/
    ├── checker.go         # 业务包:Checker + Result
    └── checker_test.go    # httptest 集成测试 + 取消测试

数据流 ​

运行 ​

bash
cd examples/urlchecker
go run . https://example.com https://go.dev   # 需联网
go run .                                        # 内置示例 URL

联网时输出形如:

text
[OK]   https://example.com            200  123ms
[OK]   https://go.dev                 200  88ms

外网不可达时显示 [FAIL] ... error: ...(预期的失败路径)。确定性验证由 httptest 本地服务器完成,不依赖外网。

验证 ​

bash
gofmt -l .          # 无输出
go vet ./...        # 通过
go test ./...       # ok urlchecker/checker
go test -race ./... # ok(无数据竞争)

已在 Go 1.24.7 / macOS arm64 全部实测通过(核验于 2026-09-07)。

关联章节 ​

ICP 备案号待补充 · Gitee 主页