2012-09-19 29 views
8
bu savların ne zaman oğul okumaya çalışacak sonra chlid-süreçleri
if (cluster.isMaster) { 
    for (var i = 0; i < os.cpus().length; i++) { 
     var new_worker_env = {}; 
     new_worker_env["WORKER_NAME"] = "worker" + i; 

     var new_worker = cluster.fork(new_worker_env); 
    } 
} 

çocuk süreç

oluşturup geçmesi

çatal fonksiyonu ve geçen argümanları node.js var, neden?

cevap

11

Windows üzerinde benim için çalışmak görünüyor Düğüm v0.8.8, node.js sürüm 0.8.8

var cluster = require('cluster'), 
    os  = require('os'); 

if (cluster.isMaster) { 
    for (var i = 0; i < os.cpus().length; i++) { 
     var new_worker_env = {}; 

     new_worker_env["WORKER_NAME"] = "worker" + i; 

     var new_worker = cluster.fork(new_worker_env); 
    } 
} else { 
    console.log(process.env['WORKER_NAME']); 
} 

çıkışlar:

worker0 
worker1 
+0

Ama bana (ben yaptım seninkiyle aynı yeni uygulama) işe yaramıyor, çıktı sekiz "tanımlanmamış". Ne olabilir? Unix x64 (freebsd) altında çalışıyorum – ElSajko

+0

Neden bu kodu kullanırsam işe yaramaz, neden ?: var server_store = new (required ("socket.io-clusterhub")); – ElSajko

+3

Bunun nedeni, socket.io-clusterhub bağımlılığı clusterhub, https://github.com/fent/clusterhub, cluster.fork yönteminin üzerine yazılır ve env'yi orijinal yönteme iletmez. Bir geçici çözüm /node_modules/clusterhub/lib/fork.js dosyasını düzenlemek için cluster.fork yöntemini env veya bir clusterhub projesiyle bir hata raporunu iletmek ve düzeltmek için beklemek için –