Junior — Middle
Kaip įgyvendinti konteksto laiką jūsų Go programoje?
sobes.tech AI
Atsakymas iš AI
Go kalboje, konteksto laiko apribojimo įgyvendinimui naudojamas context paketas. Kontekstas su laiko apribojimu sukuriamas naudojant funkciją context.WithTimeout, kuri grąžina naują kontekstą ir atšaukimo funkciją.
Pavyzdys:
ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second)
defer cancel()
select {
case <-time.After(3 * time.Second):
fmt.Println("operacija baigta")
case <-ctx.Done():
fmt.Println("laiko limitas arba konteksto atšaukimas:", ctx.Err())
}
Šiame pavyzdyje, jei operacija trunka ilgiau nei 2 sekundes, kontekstas atšaukiamas ir laiko limitas gali būti valdomas. Tai naudinga funkcijų, užklausų vykdymo laiko apribojimui.