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 サイトの他の関連記事を参照してください。