Sobes.tech
Назад к вопросам
Junior — Middle
79

Имели ли вы дело с использованием контекста WithTimeout в своих проектах?

Компании, где спрашивали
AvitoAvito

Ответ от нейросети

sobes.tech AI

Да, в проектах на Go часто используется контекст с таймаутом (context.WithTimeout) для контроля времени выполнения операций, особенно при работе с сетевыми запросами, базами данных или другими длительными процессами.

Принцип работы: создаётся новый контекст, который автоматически отменяется по истечении заданного времени. Это помогает избежать зависаний и утечек ресурсов.

Пример использования:

ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second)
defer cancel()

select {
case <-time-consuming-operation(ctx):
    fmt.Println("Operation completed")
case <-ctx.Done():
    fmt.Println("Timeout reached, operation cancelled")
}

Таким образом, WithTimeout помогает управлять временем выполнения и корректно обрабатывать ситуации, когда операция занимает слишком много времени.