Sobes.tech
Junior — Middle

Popíšte situáciu, v ktorej by bolo odôvodnené a efektívne používanie kontextov.

sobes.tech AI

Odpoveď od AI

V Go, kontexty (context.Context) sa používajú na riadenie životnosti operácií, najmä pri asynchrónnych alebo sieťových volaniach. Napríklad, ak máte HTTP server, ktorý spracováva požiadavky, a chcete zrušiť spracovanie, ak klient preruší spojenie alebo ak časový limit vyprší, použitie kontextu bude vhodné.

Príklad:

func handler(w http.ResponseWriter, r *http.Request) {
    ctx := r.Context()
    select {
    case <-time.After(5 * time.Second):
        fmt.Fprintln(w, "Spracovanie dokončené")
    case <-ctx.Done():
        err := ctx.Err()
        fmt.Println("Požiadavka zrušená alebo vypršal časový limit:", err)
    }
}

Tu kontext umožňuje zrušiť dlhodobú operáciu, ak sa klient odpojí alebo vyprší čas, čo šetrí zdroje a zlepšuje odozvu aplikácie.