Создаёшь канал и подписываешься: quit := make(chan os.Signal, 1); signal.Notify(quit, syscall.SIGTERM, syscall.SIGINT). В горутине ждёшь: <-quit, потом выполняешь graceful shutdown. Для HTTP-сервера: srv.Shutdown(ctx) — он перестаёт принимать новые соединения и ждёт завершения текущих до таймаута. Для gRPC: grpcServer.GracefulStop(). Контекст с таймаутом гарантирует, что процесс завершится даже если какой-то запрос завис. В Kubernetes SIGTERM приходит за 30 секунд до SIGKILL, так что нужно уложиться в этот таймаут.
Как перехватывать SIGTERM?
Middle
746 просмотровAFK Offer AI
Как реализовать pagination?