Google App Engine スタンダード環境でのゴルーチンの使用
Google App Engine スタンダード環境では、制限事項と最善の方法を認識することが重要です
ゴルーチンはリクエストを超えて存続できますか?
リクエストの処理後に実行を続けるゴルーチンは許可されません。これは、App Engine ランタイムがリクエストを処理するインスタンスをリサイクルまたは終了し、ゴルーチンを中断する可能性があるためです。
Goroutine の安全な使用
Goroutine を安全に使用するには、 App Engine は runtime.RunInBackground を提供します。この関数を使用すると、リクエスト コンテキストから独立したバックグラウンド goroutine でコードを実行できます。以下に例を示します。
func MyHandler(w http.ResponseWriter, r *http.Request) { err := runtime.RunInBackground(c, func(c appengine.Context) { // do something... }) return // 200 }
コンテキスト結合ゴルーチン
ただし、リクエストのコンテキスト内で実行されるゴルーチンはサポートされています。この場合、ゴルーチンのライフサイクルはリクエストに関連付けられており、リクエストのスコープ内で短期間のバックグラウンド タスクを実行するために安全に使用できます。
制限事項
重要インスタンスあたりの同時バックグラウンド リクエストの制限は 10 であることに注意してください。これにより、リソースの過剰使用が防止され、同時リクエスト間の公平な共有が確保されます。
以上がリクエストのライフサイクルを気にせずに Google App Engine スタンダード環境で Goroutines を使用できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。