Junior — Middle
Опишите ситуацију у којој би коришћење контекста било оправдано и ефикасно.
sobes.tech АИ
Одговор од АИ
У Go, konteksti (context.Context) se koriste za upravljanje vremenom trajanja operacija, posebno u asinhronim ili mrežnim pozivima. Na primer, ako imate HTTP server koji obrađuje zahteve i želite da otkažete obradu ako klijent prekinе vezu ili ako vreme čekanja pređe limit, korišćenje konteksta će biti prikladno.
Primer:
func handler(w http.ResponseWriter, r *http.Request) {
ctx := r.Context()
select {
case <-time.After(5 * time.Second):
fmt.Fprintln(w, "Obrada završena")
case <-ctx.Done():
err := ctx.Err()
fmt.Println("Zahtev otkazan ili istekao je vremenski limit:", err)
}
}
Ovde, kontekst omogućava otkazivanje duže operacije ako se klijent odjavi ili istekne vreme, čime se štede resursi i poboljšava odzivnost aplikacije.