ホームページ > バックエンド開発 > Golang > Google App Engine でリクエストごとに新しい Firestore クライアントを作成する必要がありますか?

Google App Engine でリクエストごとに新しい Firestore クライアントを作成する必要がありますか?

Patricia Arquette
リリース: 2024-11-23 14:12:19
オリジナル
406 人が閲覧しました

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 以降のランタイムでは、初期化中に 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 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート