ホームページ > バックエンド開発 > Golang > Go Mongo-Driver で `context.TODO()` と `context.Background()` を使用する場合は?

Go Mongo-Driver で `context.TODO()` と `context.Background()` を使用する場合は?

Susan Sarandon
リリース: 2024-11-11 18:45:02
オリジナル
815 人が閲覧しました

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

Go Mongo-Driver で context.TODO() と context.Background() のどちらかを選択する

Go Mongo-Driver で非 nil の空のコンテキストを操作する混乱する。 context.Background() と context.TODO() の目的を理解すると、その使用法を明確にするのに役立ちます。

Go ドキュメントによると、

  • context.Background() : 決してキャンセルされず、値も期限も持たない、非 nil の空の Context を返します。これは通常、メイン関数、初期化、テストで使用され、受信リクエストのトップレベルのコンテキストとして使用されます。
  • context.TODO(): 非 nil の空の値を返します。コンテクスト。どの Context を使用するか不明な場合、またはまだ使用できない場合 (周囲の関数がまだ Context パラメーターを受け入れるように拡張されていないため)、コードでは context.TODO() を使用する必要があります。

推奨事項: コンテキストが必要だが (まだ) コンテキストがなく、何を使用すればよいかわからない場合は、 context.TODO() を使用してください。これは、どのコンテキストを使用すればよいかわからない、またはまだ利用できないことを示しています。

コンテキストがある場合は、そのコンテキストを使用するか、そこから新しいコンテキストを派生することを検討してください。例:

  • HTTP ハンドラーと MongoDB クエリがある場合、Request.Context() を使用すると、HTTP クライアントがリクエストを中止するとキャンセルされるため、リソースを節約できます。
  • MongoDB 操作にタイムアウトがある場合は、適切なメソッドを使用して context.Background() からコンテキストを導出します。 timeout.

context.TODO() と context.Background() の違いを理解すると、Go Mongo-Driver の使用法に適切な Context を選択し、最適なリソース割り当てと処理を確保するのに役立ちます。

以上がGo Mongo-Driver で `context.TODO()` と `context.Background()` を使用する場合は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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