首頁  >  文章  >  後端開發  >  Goroutines 能否在 Google App Engine(標準環境)中比 HTTP 請求存活得更久?

Goroutines 能否在 Google App Engine(標準環境)中比 HTTP 請求存活得更久?

DDD
DDD原創
2024-10-29 00:36:30878瀏覽

Can Goroutines Outlive HTTP Requests in Google App Engine (Standard Environment)?

Goroutines 可以在 Google App Engine(標準環境)中比 HTTP 請求更長壽嗎?

在 Google App Engine 的標準環境中,似乎有可能創建在處理 HTTP 請求後繼續運行的 goroutine。但是,這種方法可能會導致問題:

func MyHandler(w http.ResponseWriter, r *http.Request) {

  go func() {
    // do something ...
  }() 

  return // 200
}

答案:

App Engine 的標準環境不支援超出要求壽命的 Goroutines。相反,使用runtime.RunInBackground在後台goroutine中執行程式碼。提供的函數將接收與請求上下文不同的後台上下文。需要注意的是,每個實例的並發後台請求數上限為 10 個。

func MyHandler(w http.ResponseWriter, r *http.Request) {

  err := runtime.RunInBackground(c, func(c appengine.Context) {
    // do something...
  })

  return // 200
}

或者,支援存在於請求上下文中的 goroutine。然而,App Engine 的執行環境僅支援單一作業系統執行緒上的 goroutine,因此不會發生並行執行。

以上是Goroutines 能否在 Google App Engine(標準環境)中比 HTTP 請求存活得更久?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn