package
0.0.0-20190618154703-00aa5de91190
Repository: https://github.com/ncfwx/x.git
Documentation: pkg.go.dev
# README
记录协程上下文的 RequestID
Usage
import (
"github.com/ncfwx/x/requestid"
)
一般会在 http 的 middleware 中Set,在 logger 中 Get
在 goroutine 中使用示例
go func() {
requestid.Set("my-request-id")
defer requestid.Delete()
func() {
requestid.Get()
}()
}()
性能测试
因为 go 的 benchmark 实际是在一个 goroutine 中运行,并没有并发,所以实际性能可能会有点差别。
goos: darwin
goarch: amd64
BenchmarkSet-4 20000000 92.6 ns/op
BenchmarkGet-4 20000000 75.8 ns/op
BenchmarkDelete-4 20000000 75.6 ns/op
BenchmarkGetGoID-4 2000000000 1.67 ns/op