Sobes.tech
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 секунди, контекстът се отменя и тайм-аутът може да бъде обработен. Това е полезно за ограничаване на времето за изпълнение на функции, заявки и др.