Sobes.tech
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.