kctx

package
v0.2.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 13, 2025 License: MIT Imports: 4 Imported by: 0

Documentation

Overview

提供增强版上下文管理,基于标准 context.Context 扩展, 支持元数据键值对存储、追踪ID(TraceID)自动生成与继承, 并保证并发安全的读写操作。

核心特性: - 完全兼容标准 context 接口,可无缝替换原生 context - 内置 TraceID 用于分布式追踪,支持从父上下文继承 - 提供线程安全的 Set/Get 方法管理元数据 - 支持 WithCancel/WithTimeout 等衍生上下文创建

Index

Constants

View Source
const (
	// TraceIDKey 用于在上下文中存储/获取 TraceID 的键,
	// 可通过 context.Value(TraceIDKey) 从父上下文继承 TraceID。
	TraceIDKey = "TraceID"
	// MetaMapKey 用于在上下文中存储/获取元数据映射的键,
	// 通过 context.Value(MetaMapKey) 可获取所有元数据的副本。
	MetaMapKey = "MetaMap"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Context

type Context interface {
	context.Context
	Get(key string) string
	Set(key string, val string)
	Values() map[string]string
	Context() context.Context
	SetContext(ctx context.Context)
	TraceID() string
}

Context 扩展标准 context.Context 接口,增加元数据和追踪ID管理能力。 实现了标准库 context.Context 的所有方法,可直接作为标准上下文使用。

func New

func New(parent ...context.Context) Context

创建上下文

func WithCancel

func WithCancel(parent Context) (Context, context.CancelFunc)

--------------- 上下文衍生函数 --------------- WithCancel 基于父上下文创建可取消的新上下文,并发安全

func WithTimeout

func WithTimeout(parent Context, timeout time.Duration) (Context, context.CancelFunc)

WithTimeout 包级函数:基于父上下文创建带超时的新上下文(核心调整点)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL