登录
首页 >  Golang >  Go问答

在BigQuery golang客户端中应该选择哪种上下文?

来源:stackoverflow

时间:2024-02-22 17:12:25 349浏览 收藏

偷偷努力,悄无声息地变强,然后惊艳所有人!哈哈,小伙伴们又来学习啦~今天我将给大家介绍《在BigQuery golang客户端中应该选择哪种上下文?》,这篇文章主要会讲到等等知识点,不知道大家对其都有多少了解,下面我们就一起来看一吧!当然,非常希望大家能多多评论,给出合理的建议,我们一起学习,一起进步!

问题内容

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

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


解决方案


来自golang site

包上下文定义了上下文类型,它带有截止日期, 取消信号以及 API 中的其他请求范围值 边界和进程之间。

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

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

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

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

本篇关于《在BigQuery golang客户端中应该选择哪种上下文?》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于Golang的相关知识,请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>