Проверяет понимание механизма корректного завершения процессов для предотвращения потери данных и обеспечения целостности системы.
Graceful shutdown (корректное завершение) — это подход, при котором приложение при получении сигнала на остановку не завершается мгновенно, а выполняет ряд завершающих действий: завершает обработку текущих запросов, закрывает открытые соединения с базами данных, сохраняет состояние, освобождает ресурсы. Это критически важно для production-систем, где потеря данных или незавершённые транзакции могут привести к серьёзным последствиям.
Обычно операционная система отправляет процессу сигнал SIGTERM (или SIGINT при Ctrl+C). Приложение должно перехватить этот сигнал и запустить процедуру завершения. Если процесс не завершается в течение заданного таймаута, ОС отправляет SIGKILL, который принудительно убивает процесс.
const server = require('http').createServer((req, res) => {
res.end('Hello');
});
server.listen(3000, () => {
console.log('Server running');
});
// Обработка graceful shutdown
process.on('SIGTERM', () => {
console.log('SIGTERM received. Shutting down gracefully...');
server.close(() => {
console.log('All connections closed');
process.exit(0);
});
});
Graceful shutdown обязателен для любых серверных приложений, работающих с данными или внешними ресурсами. Он обеспечивает целостность данных и позволяет избежать ошибок при перезапуске или обновлении системы.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию