【问题标题】:Usage of context in gcloud go sdk for cloudresourcemanager在 gcloud go sdk for cloudresourcemanager 中使用上下文
【发布时间】:2019-12-13 13:28:09
【问题描述】:

我在关注gcloud sdk官方godocumentation

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

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

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

除非我遗漏了什么,否则文档不会对此进行详细说明。

【问题讨论】:

    标签: go sdk gcloud


    【解决方案1】:

    根据Godocumentation

    在 Go 服务器中,每个传入的请求都由自己处理 goroutine。请求处理程序通常会启动额外的 goroutine 来访问数据库和 RPC 服务等后端。

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

    context 包可以轻松传递请求范围的值, 取消信号,以及跨 API 边界对所有 处理请求所涉及的 goroutine。


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

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

    【讨论】:

      猜你喜欢
      • 2020-04-07
      • 2023-03-30
      • 2018-02-12
      • 2018-07-28
      • 1970-01-01
      • 2018-10-30
      • 1970-01-01
      • 2018-01-07
      相关资源
      最近更新 更多