Junior — Middle
Kā īstenot operācijas izpildes laika ierobežojumu, izmantojot context.WithTimeout Go valodā?
sobes.tech AI
Atbilde no AI
Go valodā bieži izmanto kontekstu ar laika ierobežojumu, izmantojot funkciju context.WithTimeout, lai ierobežotu operācijas izpildes laiku. Tā atgriež jaunu kontekstu un funkciju to atcelt. Ja operācija nebeidzas pirms laika limita beigām, konteksts automātiski tiek atcelts.
Piemērs lietošanai:
ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second)
defer cancel()
select {
case result := <-someLongRunningOperation(ctx):
fmt.Println("Operācija pabeigta:", result)
case <-ctx.Done():
fmt.Println("Laika limits pārsniegts:", ctx.Err())
}
Šeit someLongRunningOperation jāpieņem ctx un regulāri jāpārbauda ctx.Done() pareizai pārtraukšanai. Tas ļauj droši pārtraukt operāciju, ja ir pārsniegts laika limits.