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

问题描述 投票:2回答:1

我正在使用Go BigQuery客户端软件包,但对context的使用情况有些困惑。

在文档中,只有Put函数明确提及使用带有超时的新上下文以避免不确定的重试。将context.Background()用于所有其他呼叫是否安全?

go google-bigquery
1个回答
0
投票

来自golang site

包上下文定义了上下文类型,其中包含截止日期,API中的取消信号和其他请求范围的值界限和过程之间。

然后,上下文被设计为针对每个用例进行调整和定制。您可以使用该库提供的功能来实现。

WithCancel,WithDeadline和WithTimeout函数采用上下文(父级)并返回派生的Context(子级)和一个取消功能。调用CancelFunc会取消该子代及其子代,删除父母对孩子的引用,并停止任何关联计时器

因此,goDocs建议在上下文中使用WithTimeout函数,同时将数据插入BigQuery并防止重复,如您所见。

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

© www.soinside.com 2019 - 2024. All rights reserved.