11

chlid-processes を作成するときに引数を渡します

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);
    }
}

そして、チャイルズでそれを読んでみてください:

if ( process.env["WORKER_NAME"] != undefined ) instance.name = process.env["WORKER_NAME"];

しかし、この変数は存在しません。なぜですか?

ノード v0.8.8

4

1 に答える 1

16

Windows、Node.jsバージョン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']);
}

出力:

worker0
worker1
于 2012-09-19T18:35:38.270 に答える