为了账号安全,请及时绑定邮箱和手机立即绑定

BigQuery golang 客户端:使用哪个上下文?

BigQuery golang 客户端:使用哪个上下文?

Go
暮色呼如 2023-07-31 16:41:58
我正在使用 Go BigQuery 客户端包,但我对用法有点困惑context。在文档中,只有该Put函数明确提到使用带有超时的新上下文以避免无限期重试。context.Background()用于所有其他呼叫是否安全?
查看完整描述

1 回答

?
侃侃尔雅

TA贡献1801条经验 获得超15个赞

来自golang 网站:

包 context 定义了 Context 类型,它携带跨 API 边界和进程之间的截止日期、取消信号和其他请求范围的值。

因此,上下文被设计为针对每个用例进行调整和定制。您可以使用库提供的功能来实现这一目标。

WithCancel、WithDeadline 和 WithTimeout 函数采用 Context(父级)并返回派生的 Context(子级)和 CancelFunc。调用 CancelFunc 会取消子级及其子级,删除父级对子级的引用,并停止任何关联的计时器

因此,goDocs建议在您的上下文中使用 WithTimeout 函数,同时将数据插入 BigQuery 并防止重复,正如您已经看到的那样。

唯一必须的是传递一个非零的上下文。你通常会使用它context.Background()作为一种方式(正如我在Cloud Github 共享的snippets.gocontext.TODO中看到的那样),但如果你不确定要使用哪一种,你可以安全地通过。


查看完整回答
反对 回复 2023-07-31
  • 1 回答
  • 0 关注
  • 54 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信