在gcloud中使用上下文转到SDK for cloudresourcemanager

时间:2019-12-13 13:28:09

标签: go sdk gcloud

我正在关注gcloud sdk的官方go documentation

作为第一步,我正在尝试实例化cloudresourcemanager服务。

我似乎无法理解(也许是我在go上下文中的背景不佳)是为什么需要context来实例化这种服务,如官方用法示例所示:

import "google.golang.org/api/cloudresourcemanager/v1"
...
ctx := context.Background()
cloudresourcemanagerService, err := cloudresourcemanager.NewService(ctx)

除非我想念某事,否则文档不会对此进行详细介绍。

1 个答案:

答案 0 :(得分:0)

根据 Go documentation

  

在Go服务器中,每个传入请求均以自己的方式处理    goroutine 。请求处理程序通常会启动其他goroutine来访问后端,例如数据库和RPC服务。

     

处理请求的goroutine集合通常需要访问   特定于请求的值,例如最终用户的身份,授权令牌和请求的截止日期。当一个请求是   取消或超时,所有处理该请求的goroutine   应该迅速退出,以便系统可以回收它们所占用的任何资源   使用。

     

上下文包可轻松传递请求范围的值,   取消信号,以及所有API边界上的截止日期   涉及处理请求的goroutine。


context.Background()是任何上下文树的根:

  

Background返回一个非null的空上下文。它永远不会被取消,已经   没有期限,也没有价值。背景通常用于主体,   初始化和测试,并作为传入请求的顶级上下文。