Junior — Middle
Kako implementirati ograničenje vremena izvršenja operacije pomoću context.WithTimeout u Go?
sobes.tech АИ
Одговор од АИ
У језику Go, за ограничење времена извршавања операције често се користи контекст са временским ограничењем преко функције context.WithTimeout. Она враћа нови контекст и функцију за отказивање. Ако операција не заврши пре истека временског ограничења, контекст се аутоматски отказује.
Пример употребе:
ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second)
defer cancel()
select {
case result := <-someLongRunningOperation(ctx):
fmt.Println("Операција завршена:", result)
case <-ctx.Done():
fmt.Println("Истекло време:", ctx.Err())
}
Овде, someLongRunningOperation треба да прихвати ctx и периодично проверава ctx.Done() за правилно прекидање. Ово омогућава безбедно прекидање операције у случају истека времена.