Sobes.tech
Middle+

Graceful shutdown nədir və harada tətbiq olunur, izah edə bilərsinizmi?

sobes.tech Süni İntellekt

AI-dan cavab

Nəzakətli bağlanma (graceful shutdown) — bu, tətbiqin düzgün şəkildə bağlanması prosesidir, bu da ona davam edən əməliyyatları tamamlamasına, resursları sərbəst buraxmasına və vəziyyəti yadda saxlamasına imkan verir.

Nəzakətli bağlanmanın tətbiqləri:

  • Yeni versiyaların tətbiqi: Köhnə versiyanı yeni ilə problemsiz dəyişdirməyə imkan verir, məlumat itkisi və ya istifadəçi sessiyalarının pozulması olmadan.
  • Planlı yenidən başlatmalar və texniki baxım: Bütün açıq əlaqələrin bağlanmasını və tapşırıqların tamamlanmasını təmin edir.
  • Xətalar və miqyaslandırma zamanı: Yük azaldıqda və ya problemlər yarandıqda, xidmətlər düzgün şəkildə dayandırıla bilər.

Node.js-də nümunə:

// 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); // Uzun əməliyyatın simulyasiyası
});

server.listen(3000, () => {
  console.log('Server port 3000-də dinləyir');
});

// SIGTERM siqnalı üçün nəzakətli bağlanma
process.on('SIGTERM', () => {
  console.log('SIGTERM siqnalı alındı. Server bağlanır...');
  server.close(() => {
    console.log('Server bağlandı. Prosesi bitirir...');
    process.exit(0);
  });

  // Bağlanma gecikərsə, zorla bağlama
  setTimeout(() => {
    console.error('Zorla bağlanır...');
    process.exit(1);
  }, 5000); // 5 saniyə
});

Nümunədə, SIGTERM siqnalı alındıqda, server yeni əlaqələri qəbul etməyi dayandırır, lakin mövcud əlaqələrin tamamlanmasına imkan verir. Təyin olunmuş vaxtdan sonra, bağlanma çox gecikərsə, zorla bağlanma həyata keçirilir.