Junior — Middle
Hogyan valósítsuk meg a kontextus időkorlátját a Go alkalmazásodban?
sobes.tech MI
Válasz az MI-től
Go nyelven a kontextus időkorlátjának megvalósításához a context csomagot használjuk. Egy időkorlátos kontextust a context.WithTimeout függvénnyel hozunk létre, amely egy új kontextust és egy megszakítási függvényt ad vissza.
Példa:
ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second)
defer cancel()
select {
case <-time.After(3 * time.Second):
fmt.Println("művelet befejezve")
case <-ctx.Done():
fmt.Println("időkorlát vagy kontextus megszakítása:", ctx.Err())
}
Ebben a példában, ha a művelet több mint 2 másodpercig tart, a kontextus megszakad, és az időkorlát kezelhető. Ez hasznos a függvények, kérések futási idejének korlátozására.