Корректное завершение работы в любом приложении, как правило, должно удовлетворять трём минимальным условиям:
- Закрытие точки входа. Остановка приёма новых запросов или сообщений из источников (HTTP, pub/sub систем и т.д.). При этом исходящие подключения к сторонним сервисам (БД, кэшам) остаются активными
- Ожидание завершения текущих запросов. Обработка всех выполняющихся операций, а если запрос выполняется слишком долго — возврат корректной ошибки
- Освобождение критических ресурсов: закрытие подключений к БД, снятие файловых блокировок, освобождение сетевых сокетов, выполнение финальных очищающих операций
18.05.2025
Похожее
02.07.2026
6 популярных кешей
Автор сравнивает шесть подходов к реализации потокобезопасного in-memory кеша в ...
29.06.2026
Детектор утечек горутин
В Go 1.27 в runtime/pprof добавляется встроенный детектор утечек горутин, принят...
26.06.2026
Мидделвари лимитеров
При использовании цепочки мидлварей, которые выполняют какие-то ограничения, в G...
23.06.2026
Рефлексия
Статья о том, как устроен пакет reflect в Go. Он, кстати, не вычисляет как-то хи...