Вопрос: Как сделать graceful shutdown HTTP-сервера по сигналу?
Python
Senior
Без компании
Вопрос: Как сделать graceful shutdown HTTP-сервера по сигналу?
Ответы
```go
srv := &http.Server{Addr: ":8080", Handler: mux}
ctx, stop := signal.NotifyContext(context.Background(), os.Interrupt, syscall.SIGTERM)
defer stop()
go func() { _ = srv.ListenAndServe() }()
<-ctx.Done()
shutdownCtx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
defer cancel()
_ = srv.Shutdown(shutdownCtx)
```
**Как это работает:** `Shutdown` ждёт завершения активных запросов до таймаута.