Sobes.tech
Middle+

Graceful shutdown деген эмне жана ал кайда колдонулат, түшүндүрүп бере аласызбы?

sobes.tech AI

AIден жооп

Мээримдүү өчүрүү (graceful shutdown) — бул тиркемени туура жабуу процесси, ал учурдагы операцияларды аяктап, ресурстарды бошотуп, абалды сактап калууга мүмкүндүк берет.

Мээримдүү өчүрүүнүн колдонмолору:

  • Жаңы версияларды жайылтуу: Эски версияны жаңы менен алмаштыруу, маалыматты жоготпостон жана колдонуучулардын сессияларын үзбөстөн, үзгүлтүксүз жүргүзүү.
  • Пландык кайра жүктөөлөр же техникалык тейлөө: Бардык ачылган байланыштар жабылып, тапшырмалар аяктагандан кийин кызмат токтотулат.
  • Ката же масштабдоо: Жүктүн азайышы же көйгөйлөр пайда болгондо, кызматтар туура токтотулушу мүмкүн.

Node.jsте мисал:

// process.js
const http = require('http');

const server = http.createServer((req, res) => {
  setTimeout(() => {
    res.writeHead(200, { 'Content-Type': 'text/plain' });
    res.end('Hello, World!\n');
  }, 2000); // Узун операциянын имитациясы
});

server.listen(3000, () => {
  console.log('Сервер 3000 портто угуп жатат');
});

// SIGTERM белгилери үчүн мээримдүү өчүрүү
process.on('SIGTERM', () => {
  console.log('SIGTERM белгилери алынды. Сервер жабылууда...');
  server.close(() => {
    console.log('Сервер жабылды. Процесстен чыгуу.');
    process.exit(0);
  });

  // Кыска убакыттан кийин күч менен жабуу, эгер жабуу узак болсо
  setTimeout(() => {
    console.error('Мажбурлап жабуу...');
    process.exit(1);
  }, 5000); // 5 секунд
});

Мисалда, SIGTERM белгилери келгенде, сервер жаңы байланыштарды кабыл алууну токтотот, бирок азыркы туташуулары аяктагандан кийин гана жабылат. Белгиленген убакыттан кийин, эгер жабуу узакка созулса, мажбурлап жабуу ишке ашырылат.