context передаёт отмену и дедлайн по цепочке вызовов. HTTP-запросы, обращения к БД и фоновые операции должны наблюдать его завершение и корректно освобождать ресурсы.
Как пакет context в Go помогает управлять дедлайнами, тайм-аутами и отменами в API-запросах или фоновых заданиях?
context передаёт отмену и дедлайн по цепочке вызовов. HTTP-запросы, обращения к БД и фоновые операции должны наблюдать его завершение и корректно освобождать ресурсы.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
context передаёт отмену и дедлайн по цепочке вызовов. HTTP-запросы, обращения к БД и фоновые операции должны наблюдать его завершение и корректно освобождать ресурсы.
Создавайте дочерний контекст с тайм-аутом и вызывайте cancel, обычно через defer. Передавайте его в методы с поддержкой context, а в собственном цикле проверяйте ctx.Done(). Отмена не убивает горутину автоматически и не откатывает уже совершённый внешний эффект. Фоновой задаче нужен собственный жизненный цикл, а не случайно сохранённый контекст завершившегося HTTP-запроса.