Author Archives: nasser

When using node.js cluster, how to access a worker’s environment when it dies?

I'm using node.js cluster module to create worker processes. And I set a custom variable in each worker's environment as I fork it.

I need to read that custom variable when a worker dies, but when a worker dies, I can't access its environment object anymore.

This is what I tried so far:

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

if (cluster.isMaster) {

    cluster.on('exit', function (worker, code, signal) {

        console.log('worker ' + worker.process.pid + ' died');

        var x = {
            workerId: worker.process.env.workerId // This is undefined.
        };
        cluster.fork(x);
    });

    for (var i = 0; i < os.cpus().length; i++) {
        var x = {
            workerId: i
        };
        cluster.fork(x);
    }

}
else {
    console.log("workerId: ", process.env.workerId);

    // simulate an exeption:
    throw "fakeError";

}

I know that's not gonna work, my question is: how to access to latest state of a worker's envoronment right before its death?

When using node.js cluster, how to access a worker’s environment when it dies?

I'm using node.js cluster module to create worker processes. And I set a custom variable in each worker's environment as I fork it.

I need to read that custom variable when a worker dies, but when a worker dies, I can't access its environment object anymore.

This is what I tried so far:

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

if (cluster.isMaster) {

    cluster.on('exit', function (worker, code, signal) {

        console.log('worker ' + worker.process.pid + ' died');

        var x = {
            workerId: worker.process.env.workerId // This is undefined.
        };
        cluster.fork(x);
    });

    for (var i = 0; i < os.cpus().length; i++) {
        var x = {
            workerId: i
        };
        cluster.fork(x);
    }

}
else {
    console.log("workerId: ", process.env.workerId);

    // simulate an exeption:
    throw "fakeError";

}

I know that's not gonna work, my question is: how to access to latest state of a worker's envoronment right before its death?

شرح حال دل پروانه

پروانه نارنجی با آن خط و خال مشکی گیر افتاده بود کنج دیوار. فکر کردم افتاده توی تار عنکبوت یا بلایی سرش آمده. اما فقط ترسیده بود. فکر می کرد رسیده ته دنیا. ته دنیا همه اش سفید بود و اثری از برگ و درخت و آسمان نبود. کمی می رفت بالا. بعد سر می خورد پایین و باز خودش را می کوبید به سفیدی مطلق. سفیدی بی پایان روبرویش. عمر پروانه چند روز است؟ شاید به مقیاس عمر ما، چند سالی را در این اندوه گذرانده بود که دیگر تمام شد. همه چیز به پایان رسید. بعد تو بالهایش را گرفتی. آنقدر آرام که آن گرد سیاهی که از خالهای پروانه ها به دستهای بچگیم می افتاد، هم به دستهایت نماند. پروانه را درست دو قدم آن طرفتر پر دادی به طرف برگهای چنار. پروانه رفت. رفت و رفت. زنده بود. آسمان روبرویش بود و آن سفیدی مرگبار ترسناک دیگر وجود نداشت. چند سال از عمرش، به مقیاس عمر ما در آن کنج سفید گذشته بود؟ 

شرح حال دل پروانه

پروانه نارنجی با آن خط و خال مشکی گیر افتاده بود کنج دیوار. فکر کردم افتاده توی تار عنکبوت یا بلایی سرش آمده. اما فقط ترسیده بود. فکر می کرد رسیده ته دنیا. ته دنیا همه اش سفید بود و اثری از برگ و درخت و آسمان نبود. کمی می رفت بالا. بعد سر می خورد پایین و باز خودش را می کوبید به سفیدی مطلق. سفیدی بی پایان روبرویش. عمر پروانه چند روز است؟ شاید به مقیاس عمر ما، چند سالی را در این اندوه گذرانده بود که دیگر تمام شد. همه چیز به پایان رسید. بعد تو بالهایش را گرفتی. آنقدر آرام که آن گرد سیاهی که از خالهای پروانه ها به دستهای بچگیم می افتاد، هم به دستهایت نماند. پروانه را درست دو قدم آن طرفتر پر دادی به طرف برگهای چنار. پروانه رفت. رفت و رفت. زنده بود. آسمان روبرویش بود و آن سفیدی مرگبار ترسناک دیگر وجود نداشت. چند سال از عمرش، به مقیاس عمر ما در آن کنج سفید گذشته بود؟