Graceful reload
- Node.js kursu
- İleri seviye
- Ders 5/83
- 5 dk
Cluster ile graceful reload öğrenirsin.
Graceful reload
Graceful reload (kesintisiz yeniden yükleme), sunucuyu kapatmadan işçileri tek tek yeniden başlatmaktır. Amaç: yeni kodu canlıya alırken bağlantı kopması yaşamamak.
Yaygın yöntem: ana sürece SIGUSR2 sinyali gönderilir. Ana süreç sinyali yakalar, her işçi için önce yeni bir işçi başlatır, sonra eski işçiye worker.disconnect() çağrısı yapar. Eski işçi bekleyen istekleri bitirip kapanır.
exit olayı
cluster.on("exit") olayı, bir işçi çöktüğünde veya kapatıldığında tetiklenir. Graceful reload ve otomatik yeniden başlatma için temel araçtır.
İşleyici iki parametre alır: worker ve code (çıkış kodu). İşçi ölünce cluster.fork() çağırarak yerine yenisini başlatırsın. Bu, uygulamayı çökmelere karşı dayanıklı yapar. Çıkış kodu sıfırdan farklıysa beklenmeyen bir çöküş olduğunu anlarsın.
Uygulama exit işleyicisini kaydet
cluster üzerinde "exit" olayını dinle; işleyici içinde cluster.fork() çağır. En son "reload hazır" yaz.
Başlangıç kodu
// cluster modülünü içe aktar
// exit olayını dinle, fork çağır
// "reload hazır" yazÖrnek çözüm
const cluster = require("cluster");
cluster.on("exit", () => { cluster.fork(); });
console.log("reload hazır");Beklenen çıktı
reload hazır
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Olay adını tamamla
cluster.on("____", (worker) => { cluster.fork(); })
cluster.on("exit", (worker) => { cluster.fork(); })
Açıklama: exit olayı işçi ölünce tetiklenir.
2 Parçayı rolüne eşle
| Kavram | Anlamı |
|---|---|
cluster.on("exit") |
İşçi ölünce tetiklenir |
cluster.fork() |
Yeni işçi başlatır |
SIGUSR2 |
Yeniden yükleme sinyali |
graceful |
Kesintisiz |
3 Graceful reload hangi sinyalle tetiklenir?
- SIGUSR2 Doğru cevap
- SIGKILL
- SIGTERM
- SIGINT
Açıklama: SIGUSR2 graceful reload için yaygın sinyaldır.