BigQuery golang客户端:使用哪个上下文?
我正在使用GoBigQuery客户端包,对BigQuery golang客户端:使用哪个上下文?,go,google-bigquery,Go,Google Bigquery,我正在使用GoBigQuery客户端包,对context的用法有点困惑 在文档中,只有Put函数明确提到使用带超时的新上下文以避免无限次重试。对所有其他调用使用context.Background()安全吗?来自: 包上下文定义上下文类型,该类型包含截止日期, 取消信号,以及API中的其他请求范围值 过程之间的边界和边界 因此,上下文被设计为针对每个用例进行调整和定制。您可以使用库提供的函数来实现这一点 WithCancel、WithDeadline和WithTimeout函数采用上下文 (父对
context
的用法有点困惑
在文档中,只有Put
函数明确提到使用带超时的新上下文以避免无限次重试。对所有其他调用使用context.Background()
安全吗?来自:
包上下文定义上下文类型,该类型包含截止日期,
取消信号,以及API中的其他请求范围值
过程之间的边界和边界
因此,上下文被设计为针对每个用例进行调整和定制。您可以使用库提供的函数来实现这一点
WithCancel、WithDeadline和WithTimeout函数采用上下文
(父对象)并返回派生上下文(子对象)和
取消功能。调用CancelFunc将取消子项及其子项,
删除父对象对子对象的引用,并停止任何关联的
计时器
因此,建议在您的上下文中使用WithTimeout函数,同时向BigQuery插入数据并防止重复,正如您已经看到的那样
唯一必须的是传递一个非nil上下文。您通常会使用context.Background()
作为一种方法(正如我在共享云Github中看到的),但是如果您不确定使用哪一种方法,您可以安全地通过context.TODO