我正在使用 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
中看到的那样),但如果你不确定要使用哪一种,你可以安全地通过。
- 1 回答
- 0 关注
- 84 浏览
添加回答
举报
0/150
提交
取消