受信 HTTP リクエストを処理する際、処理中に 202 Accepted ステータス コードで応答する必要があるシナリオに直面する場合があります。バックグラウンドでペイロードの処理を続けます。この状況を効果的に処理するには、リクエストを閉じてバックグラウンド処理を開始する適切な方法を知ることが重要です。
指定されたコード例では、インデックス ハンドラーは 202 Accepted ステータス コードで応答し、スリープを開始します。 goroutine としての操作。このアプローチは、リクエストを閉じてスリープ操作を非同期で実行するため、正しいです。
ただし、go ステートメントの後に return ステートメントを含める必要があるかどうかという問題が生じます。公式 HTTP ハンドラーのドキュメントによると、「リクエストが終了したことを示す信号を返す」とのことです。これは、ハンドラー内で return ステートメントが実行されるとすぐに、リクエストが完了したとみなされることを意味します。 return の後に開始された操作は、ハンドラーのスコープ内では実行されません。
したがって、この場合、return ステートメントは必要ありません。 return ステートメントが検出されるとすぐにハンドラーから実行が戻り、スリープ操作はバックグラウンドで実行され続けます。
要約すると、HTTP リクエストを閉じてバックグラウンド処理を開始する必要がある場合、ヘッダーを記述して go ステートメントを呼び出すだけで十分です。 return 文は不要なので省略してください。 ResponseWriter 値と Request 値は再利用される可能性があるため、バックグラウンドの goroutine で使用しないように注意してください。
以上がHTTP リクエストの処理: バックグラウンド処理に return ステートメントは必要ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。