Sobes.tech
Junior — Middle

Aprakstiet situāciju, kurā kontekstu izmantošana būtu pamatota un efektīva.

sobes.tech AI

Atbilde no AI

Go valodā konteksti (context.Context) tiek izmantoti operāciju dzīves ilguma pārvaldībai, īpaši asinhronajos vai tīkla izsaukumos. Piemēram, ja jums ir HTTP serveris, kas apstrādā pieprasījumus, un vēlaties pārtraukt apstrādi, ja klients pārtrauc savienojumu vai ja gaidīšanas laiks pārsniedz limitu, konteksta izmantošana būs piemērota.

Piemērs:

func handler(w http.ResponseWriter, r *http.Request) {
    ctx := r.Context()
    select {
    case <-time.After(5 * time.Second):
        fmt.Fprintln(w, "Apstrāde pabeigta")
    case <-ctx.Done():
        err := ctx.Err()
        fmt.Println("Pieprasījums pārtraukts vai laika limits ir beidzies:", err)
    }
}

Šeit konteksts ļauj pārtraukt ilgstošu operāciju, ja klients atvienojas vai laiks beidzas, kas taupa resursus un uzlabo lietojumprogrammas reakcijas ātrumu.