Sobes.tech
Junior — Middle

Kasutasite meetodit Context.WithTimeout operatsioonide täitmisaja piiramiseks?

sobes.tech AI

Vastus AI-lt

Jah, meetod context.WithTimeout Go keeles kasutatakse sageli operatsioonide täitmisaja piiramiseks, eriti töötades võrgupäringute, andmebaaside või teiste pikaajaliste protsessidega.

See loob uue konteksti, mis automaatselt tühistatakse pärast määratud aja möödumist, aidates vältida hangumist ja kontrollida ajapiiranguid.

Kasutusnäide:

ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second)
defer cancel()

err := doSomething(ctx)
if err != nil {
    if errors.Is(err, context.DeadlineExceeded) {
        fmt.Println("Operatsioon ületas aja limiidi")
    } else {
        fmt.Println("Täitmise viga:", err)
    }
}

Selles näites peab funktsioon doSomething toetama konteksti ja katkestama oma töö, kui aeg saab läbi.