Utilisation de Goroutines dans l'environnement standard de Google App Engine
Dans l'environnement standard de Google App Engine, il est important d'être conscient des limites et des meilleures pratiques lors de l'utilisation de goroutines.
Les goroutines peuvent-elles survivre à une demande ?
Les goroutines qui continuent de s'exécuter une fois la demande traitée ne sont pas autorisées. En effet, le runtime App Engine peut recycler ou mettre fin à l'instance traitant la requête, interrompant potentiellement la goroutine.
Utilisation sécurisée de Goroutine
Pour garantir une utilisation sûre des goroutines, App Engine fournit le runtime.RunInBackground. Cette fonction vous permet d'exécuter du code dans une goroutine en arrière-plan indépendante du contexte de la requête. Voici un exemple :
func MyHandler(w http.ResponseWriter, r *http.Request) { err := runtime.RunInBackground(c, func(c appengine.Context) { // do something... }) return // 200 }
Goroutines liées au contexte
Cependant, les goroutines qui s'exécutent dans le contexte d'une requête sont prises en charge. Dans ce cas, le cycle de vie de la goroutine est lié à la requête et peut être utilisé en toute sécurité pour effectuer des tâches en arrière-plan de courte durée dans le cadre de la requête.
Limitations
C'est important à noter qu'il existe une limite de 10 requêtes en arrière-plan simultanées par instance. Cela évite la surutilisation des ressources et garantit un partage équitable entre les demandes simultanées.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!