首页 > 技术文章 > Context

wangruixing 2020-09-10 15:48 原文

Context

1、Context取消goroute任务
2、Context进行超时控制
3、Context传递普通参数

Context使用

context.WithCancel

1、返回一个cancel函数,调用cancel函数的时候,会触发context.Done()函数
2、当你执行一个后台任务时,如果需要取消这个后台任务怎么办

context.WithTimeout

1、超过指定时间之后,会触发context.Done函数
2、当执行一个函数调用,特别RPC调用时,怎么做超时控制

传递上下文通用参数

1、context.WithValue(ctx, "key", value), 把参数设置到context中
2、context.Value("key")获取参数
3、一个请求需要访问N个子系统,这时候如果跟踪各个子系统执行的情况呢?

推荐阅读