CodeBlanks Logo Icon CodeBlanks

Worker IPC

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

index.js
// cluster modülünü içe aktar

// message olayını dinle

// "IPC hazır" yaz

Örnek çözüm

index.js
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

Soru
cluster.on("____", (worker, msg) => {})
Cevap
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.

İleri seviye bölümündeki tüm dersler