Junior — Middle
Как да реализирате тайм-аут на контекста във вашето приложение на Go?
sobes.tech AI
Отговор от AI
В Go за реализиране на тайм-аут на контекста се използва пакета context. Създава се контекст с тайм-аут чрез функцията context.WithTimeout, която връща нов контекст и функция за отменяне.
Пример:
ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second)
defer cancel()
select {
case <-time.After(3 * time.Second):
fmt.Println("операцията е завършена")
case <-ctx.Done():
fmt.Println("тайм-аут или отменяне на контекста:", ctx.Err())
}
В този пример, ако операцията отнеме повече от 2 секунди, контекстът се отменя и тайм-аутът може да бъде обработен. Това е полезно за ограничаване на времето за изпълнение на функции, заявки и др.