Как реализовать graceful shutdown в Go сервисе?

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

Signal handler (SIGTERM, SIGINT) через signal.NotifyContext. При получении: 1) перестать принимать новые запросы, 2) дождаться завершения in-flight запросов (context с timeout), 3) закрыть коннекты к БД, очередям. http.Server.Shutdown(ctx) делает это для HTTP. Для gRPC — GracefulStop(). Worker горутины — через context cancellation и WaitGroup.

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

Что такое ~int в constraints?