Специализация
Python Backend Developer
Java Backend Developer
Node.js Backend Developer
Golang Backend Developer
React Frontend Developer
Выберите навыки
React
JavaScript
Git
Redux
Webpack
Сложность
1-3
4-6
7-8
9-10
Рейтинг вопросов
1
2
3
4
5
Подпишись на React Developer в телеграм
Как организовать корректный graceful shutdown воркеров в PHP, чтобы завершить начатые задачи без потерь?
Graceful shutdown — это завершение воркера без резкого прерывания текущей задачи. Для этого воркер должен уметь ловить сигналы (SIGTERM, SIGINT), прекращать принимать новые сообщения и корректно завершать обработку текущего. После завершения работы нужно подтвердить или вернуть сообщение в очередь. В PHP это реализуется через pcntl-сигналы, флаги остановки и аккуратное управление циклом обработки.
Как в Go реализовать graceful shutdown для сервиса, у которого есть HTTP-сервер и фоновые воркеры?
Используют context и системные сигналы (os.Signal). При SIGTERM вызывается server.Shutdown(ctx), а воркерам передаётся отменённый контекст, чтобы завершить работу.
Как правильно подключить http.Server.Shutdown с воркерами и ресурсами?
Создайте общий context.WithCancel, передайте его воркерам, а при сигнале: Shutdown(ctx) для HTTP, закройте входящие каналы, дождитесь WaitGroup, освободите ресурсы (БД/кэш), соблюдая таймаут.
Как реализовать graceful shutdown (defer, контекст, обработка ошибок в группах горутин)?
Для graceful shutdown используют:
context.Context для отмены операций.
sync.WaitGroup для ожидания завершения горутин.
Обработку сигналов ОС (os.Interrupt).
Рейтинг:
5
Сложность:
7
Рейтинг:
4
Сложность:
7
Рейтинг:
5
Сложность:
7
Рейтинг:
1
Сложность:
8