Как реализовать graceful shutdown для HTTP?

Middle
277 просмотров
AFK Offer AI

Ловишь сигнал SIGTERM через signal.Notify, вызываешь server.Shutdown(ctx) с таймаутом. Shutdown перестаёт принимать новые соединения, но дожидается завершения текущих запросов. Если запросы не завершились за таймаут — принудительно закрывает. Это важно для Kubernetes, который посылает SIGTERM перед убийством пода.

Следующий вопрос

Как реализовать retry с backoff?