首页 > 后端开发 > Golang > 正文

何时在 Go Mongo-Driver 中使用 `context.TODO()` 与 `context.Background()`?

Susan Sarandon
发布: 2024-11-11 18:45:02
原创
753 人浏览过

When to Use `context.TODO()` vs `context.Background()` in Go Mongo-Driver?

在 Go Mongo-Driver 中选择 context.TODO() 和 context.Background()

在 Go Mongo-Driver 中使用非零空上下文可以是令人困惑。理解 context.Background() 和 context.TODO() 的用途可以帮助阐明它们的用法。

根据 Go 文档:

  • context.Background() : 返回一个非零、空的 Context,它永远不会被取消,没有值,也没有截止日期。它通常用在主函数、初始化和测试中,并作为传入请求的顶级上下文。
  • context.TODO(): 返回一个非零的空值语境。当不清楚要使用哪个 Context 或它尚不可用时(因为周围的函数尚未扩展以接受 Context 参数),代码应使用 context.TODO()。

建议: 当您需要上下文但还没有上下文并且不知道该使用什么时,请使用 context.TODO()。此文件表明您不知道要使用什么上下文,或者它尚不可用。

如果您确实有上下文,请考虑使用该上下文,或从中派生一个新上下文。例如:

  • 如果您有 HTTP 处理程序和 MongoDB 查询,则使用 Request.Context() 可以节省资源,因为当 HTTP 客户端中止请求时它会被取消。
  • 如果 MongoDB 操作超时,请使用适当的上下文从 context.Background() 派生上下文

了解 context.TODO() 和 context.Background() 之间的区别可以帮助您为 Go Mongo-Driver 使用选择合适的 Context,确保最佳的资源分配和处理。

以上是何时在 Go Mongo-Driver 中使用 `context.TODO()` 与 `context.Background()`?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板