Жизненный цикл соединения и пула в Go. Graceful shutdown.

Ответ

При старте приложения открывают sql.DB (или pgxpool.Pool) один раз, передают в handlers/repositories. При shutdown вызывают db.Close() - ожидает завершения активных запросов и закрывает пул. Чтобы не принимать новые запросы при shutdown, отменяют контекст сервера (Shutdown) и ждут завершения обработчиков; затем закрывают DB. Таймаут на shutdown ограничивает время ожидания.

srv.Shutdown(ctx)
db.Close()
🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.