Back to questions
Avito
Junior — Middle
78
Имели ли вы дело с использованием контекста WithTimeout в своих проектах?
Companies where asked
Answer from AI
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 помогает управлять временем выполнения и корректно обрабатывать ситуации, когда операция занимает слишком много времени.