首页  >  文章  >  后端开发  >  我应该在 Google App Engine 中为每个请求创建一个新的 Firestore 客户端吗?

我应该在 Google App Engine 中为每个请求创建一个新的 Firestore 客户端吗?

Patricia Arquette
Patricia Arquette原创
2024-11-23 14:12:19318浏览

Should I Create a New Firestore Client Per Request in Google App Engine?

可以在 Google App Engine 中根据请求创建 Firestore 客户端吗?

在 Google App Engine (GAE) 中,关于管理 Firestore 客户端的最佳方法。本文将解决这个问题,根据所使用的 GAE 运行时阐明最佳实践。

传统上,在旧版 GAE 标准运行时中,需要为每个请求创建一个新的 Firestore 客户端。然而,随着 GAE 标准引入 Go 1.11 运行时,开发人员现在拥有了更大的灵活性。

对于 Go 1.11 及更高版本的运行时,建议在初始化期间创建单例 Firestore 客户端,使用 main( ) 或 init() 函数,以及 context.Background()。这允许客户端在多个请求调用之间重用。下面是一个示例:

package main

import "cloud.google.com/go/firestore"

var client *firestore.Client

func init() {
  var err error
  client, err = firestore.NewClient(context.Background())
  // handle errors as needed
}

func handleRequest(w http.ResponseWriter, r *http.Request) {
  doc := client.Collection("cities").Doc("Mountain View")
  doc.Set(r.Context(), someData)
  // rest of the handler logic
}

这种方法不仅更高效,而且符合在 GAE 上下文中创建 Firestore 客户端的推荐模式。相比之下,为每个请求创建一个新客户端可能会导致不必要的开销和不便。

综上所述,如果在 GAE 标准中使用 Go 1.11 运行时,建议在初始化期间创建单个 Firestore 客户端并重用它对于所有请求调用。这种方法提高了性能并简化了代码维护。

以上是我应该在 Google App Engine 中为每个请求创建一个新的 Firestore 客户端吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn