Worker IPC
- Node.js kursu
- İleri seviye
- Ders 3/83
- 5 dk
Worker'lar arası IPC ile iletişim öğrenirsin.
Worker IPC
İşçi süreçler bellek paylaşmaz; bu yüzden ana ile işçi arasında iletişim için IPC (Inter-Process Communication) kullanılır. IPC, cluster modülünün sağladığı yerleşik bir mesaj kanalıdır.
Ana süreç worker.send(msg) ile mesaj gönderir; cluster.on("message") ile işçiden gelen mesajı yakalar. İşçi tarafta process.send(msg) ve process.on("message") kullanılır. Mesajlar düz nesne (plain object) olmalıdır.
message olayı
cluster modülünde "message" olayı, bir işçiden mesaj geldiğinde ana süreçte tetiklenir. İşleyici iki parametre alır: worker (mesajı gönderen işçi) ve msg (mesaj içeriği).
Bu desen, işçilerin uzun hesaplamaları bitirip anaya sonuç bildirmesi için idealdir. Örneğin, işçi bir rapor hazırlar, process.send({ done: true }) ile anaya bildirir.
Uygulama message işleyicisini kaydet
cluster üzerinde "message" olayını dinleyen bir işleyici kaydet. En son "IPC hazır" yaz.
Başlangıç kodu
// cluster modülünü içe aktar
// message olayını dinle
// "IPC hazır" yazÖrnek çözüm
const cluster = require("cluster");
cluster.on("message", (worker, msg) => {});
console.log("IPC hazır");Beklenen çıktı
IPC hazır
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Parçayı rolüne eşle
| Kavram | Anlamı |
|---|---|
worker.send |
İşçiye mesaj gönderir |
process.send |
Anaya mesaj gönderir |
message olayı |
Mesajı yakalar |
IPC |
Süreçler arası iletişim |
2 Olay adını tamamla
cluster.on("____", (worker, msg) => {})
cluster.on("message", (worker, msg) => {})
Açıklama: message olayı işçiden gelen mesajı yakalar.
3 Hangi olay işçi mesaj gönderince tetiklenir?
- exit
- online
- message Doğru cevap
- listening
Açıklama: message olayı işçi mesaj gönderince tetiklenir.