golang context 的作用和用法
作用:
-
传递请求相关的信息:Context 可以在请求处理链路中传递请求相关的信息,比如请求的 Trace ID、用户信息等。
-
控制请求的超时和取消:通过控制 Context 的超时和取消,可以避免请求处理时间过长,从而提高系统的稳定性和可靠性。
-
管理 Goroutine:Context 可以用来管理 Goroutine 的生命周期,当 Context 被取消时,所有由该 Context 创建的 Goroutine 都应该退出。
用法:
-
创建 Context:使用 context.Background() 可以创建一个空 Context,也可以使用 context.WithValue()、context.WithTimeout()、context.WithDeadline()、context.WithCancel() 等函数来创建含有特定属性的 Context。
-
传递 Context:将 Context 作为参数传递给请求处理函数,并在函数中使用它来获取请求相关的信息或控制请求的超时和取消。
-
监听 Context 取消信号:使用 Context.Done() 方法监听 Context 是否被取消,如果被取消则可以执行一些清理操作。
-
嵌套 Context:可以使用 context.WithValue() 函数将一个 Context 嵌套在另一个 Context 中,这样可以在子 Context 中传递额外的请求信息
原文地址: https://www.cveoy.top/t/topic/feP2 著作权归作者所有。请勿转载和采集!