Rumah > pembangunan bahagian belakang > Golang > Bolehkah Goroutines Menjalani Permintaan HTTP dalam Enjin Apl Google (Persekitaran Standard)?

Bolehkah Goroutines Menjalani Permintaan HTTP dalam Enjin Apl Google (Persekitaran Standard)?

DDD
Lepaskan: 2024-10-29 00:36:30
asal
1031 orang telah melayarinya

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

Bolehkah Goroutines Menjalani Permintaan HTTP dalam Enjin Apl Google (Persekitaran Standard)?

Dalam Persekitaran Standard Enjin Aplikasi Google, nampaknya mungkin untuk buat goroutine yang terus berjalan selepas permintaan HTTP telah dikendalikan. Walau bagaimanapun, pendekatan ini boleh membawa kepada isu:

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

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

  return // 200
}
Salin selepas log masuk

Jawapan:

Gorutin yang melebihi permintaan tidak disokong dalam Persekitaran Standard Enjin Apl. Sebaliknya, gunakan runtime.RunInBackground untuk melaksanakan kod dalam goroutine latar belakang. Fungsi yang disediakan akan menerima konteks latar belakang yang berbeza daripada konteks permintaan. Adalah penting untuk ambil perhatian bahawa terdapat had 10 permintaan latar belakang serentak bagi setiap kejadian.

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

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

  return // 200
}
Salin selepas log masuk

Sebagai alternatif, gorout yang hidup dalam konteks permintaan disokong. Walau bagaimanapun, persekitaran masa jalan App Engine hanya menyokong goroutine pada urutan sistem pengendalian tunggal, jadi tiada pelaksanaan selari akan berlaku.

Atas ialah kandungan terperinci Bolehkah Goroutines Menjalani Permintaan HTTP dalam Enjin Apl Google (Persekitaran Standard)?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan