context

package
v0.0.0-...-69d094b Latest Latest
Warning

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

Go to latest
Published: Feb 15, 2024 License: MIT Imports: 5 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Cancel

func Cancel() (context.Context, context.CancelFunc)

Cancel is equavalent to context.WithCancel(context.Background())

func Deadline

func Deadline(d time.Time) (context.Context, context.CancelFunc)

Deadline is equavalent to context.WithDeadline(context.Background(), d)

func HandleContext

func HandleContext(ctx context.Context, f func() error) error

HandleContext embeds a function without context, but can easily implement cancel and timeout logic without complex detecting in codes.

func Timeout

func Timeout(timeout time.Duration) (context.Context, context.CancelFunc)

Timeout is equavalent to context.WithTimeout(context.Background(), timeout)

func UniqueID

func UniqueID(ctx context.Context) (uniqID string)

UniqueID 返回保存在 context 中的 unique ID。如果不存在则返回空

func WithKVs

func WithKVs(kvPairs map[interface{}]interface{}, parent ...context.Context) context.Context

WithKVs returns a context.Context implements with multple KV pairs

func WithUniqueID

func WithUniqueID(parent context.Context, uniqID ...string) (context.Context, string)

WithUniqueID 返回一个新的、内置了 uniqID 的 context, 便于新建 context 的时候区分 goroutine。如果不指定 uniqID 或者指定了空字符串, 则使用 Google 的 uuid算法生成 uid。

返回新的 context 以及 unique ID。

Types

type KVContext

type KVContext struct {
	// contains filtered or unexported fields
}

KVContext implements a context storage with multiple key-value pairs

func (*KVContext) Deadline

func (kv *KVContext) Deadline() (time.Time, bool)

Deadline implements context.Context interface

func (*KVContext) Done

func (kv *KVContext) Done() <-chan struct{}

Done implements context.Context interface

func (*KVContext) Err

func (kv *KVContext) Err() error

Err implements context.Context interface

func (*KVContext) Value

func (kv *KVContext) Value(key interface{}) interface{}

Err implements context.Context interface

Jump to

Keyboard shortcuts

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