Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
BigQuery golang客户端:使用哪个上下文?_Go_Google Bigquery - Fatal编程技术网

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

BigQuery golang客户端:使用哪个上下文?,go,google-bigquery,Go,Google Bigquery,我正在使用GoBigQuery客户端包,对context的用法有点困惑 在文档中,只有Put函数明确提到使用带超时的新上下文以避免无限次重试。对所有其他调用使用context.Background()安全吗?来自: 包上下文定义上下文类型,该类型包含截止日期, 取消信号,以及API中的其他请求范围值 过程之间的边界和边界 因此,上下文被设计为针对每个用例进行调整和定制。您可以使用库提供的函数来实现这一点 WithCancel、WithDeadline和WithTimeout函数采用上下文 (父对

我正在使用GoBigQuery客户端包,对
context
的用法有点困惑

在文档中,只有
Put
函数明确提到使用带超时的新上下文以避免无限次重试。对所有其他调用使用
context.Background()
安全吗?

来自:

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

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

WithCancel、WithDeadline和WithTimeout函数采用上下文 (父对象)并返回派生上下文(子对象)和 取消功能。调用CancelFunc将取消子项及其子项, 删除父对象对子对象的引用,并停止任何关联的 计时器

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

唯一必须的是传递一个非nil上下文。您通常会使用
context.Background()
作为一种方法(正如我在共享云Github中看到的),但是如果您不确定使用哪一种方法,您可以安全地通过
context.TODO