4 вопросов
context.Context - механизм для передачи дедлайнов, сигналов отмены и request-scoped данных. Всегда передаётся первым аргументом функции по конвенции Go.
context.Context? 🟡 Средний
▶
context.Context - механизм для передачи сигналов отмены, дедлайнов и request-scoped данных через цепочку вызовов. Позволяет корректно завершать работу при отмене.
Подробнее →context.WithCancel(parent)? 🟡 Средний
▶
Возвращает (ctx, cancel). Вызов cancel() отменяет ctx и всех его потомков. Родительский parent не затрагивается. Всегда вызывайте cancel() через defer для освобождения ресурсов.
Подробнее →context.WithTimeout(ctx, 5*time.Second)? 🟡 Средний
▶
WithTimeout - обёртка над WithDeadline. Контекст автоматически отменяется по истечении таймаута ИЛИ при вызове cancel(). Канал ctx.Done() закрывается при отмене.
Подробнее →Конвенция Go: ctx context.Context - всегда первый аргумент функции. Не храните context в структурах. Создавайте для каждого запроса/операции.
Подробнее →