node v9.11.1
プロセスを分けたいのですが、配列の値ごとに分けたいのです。
javascript
1'use strict'; 2 3const cluster = require('cluster'); 4const numCPUs = require('os').cpus().length; 5 6const arr = [1, 2, 3, 4, 5]; 7 8const main = () => { 9 for (const n of arr) { 10 if (cluster.isMaster) { 11 for (let i = 0; i < numCPUs; i++) { 12 console.log('parent:', n, process.pid); 13 cluster.fork(); 14 } 15 } else { 16 console.log('child:', n, process.pid); 17 process.exit(); 18 } 19 } 20} 21 22main();
配列arrがありまして、その値を子プロセスで使いたいのです。
上のコードを実行すると、
bash
1parent: 1 3735 2parent: 1 3735 3parent: 1 3735 4parent: 1 3735 5parent: 1 3735 6parent: 1 3735 7parent: 1 3735 8parent: 1 3735 9parent: 2 3735 10parent: 2 3735 11parent: 2 3735 12parent: 2 3735 13parent: 2 3735 14child: 1 3738 15parent: 2 3735 16child: 1 3736 17parent: 2 3735 18parent: 2 3735 19parent: 3 3735 20parent: 3 3735 21parent: 3 3735 22parent: 3 3735 23parent: 3 3735 24parent: 3 3735 25parent: 3 3735 26parent: 3 3735 27parent: 4 3735 28parent: 4 3735 29parent: 4 3735 30parent: 4 3735 31parent: 4 3735 32parent: 4 3735 33parent: 4 3735 34parent: 4 3735 35parent: 5 3735 36child: 1 3739 37parent: 5 3735 38parent: 5 3735 39parent: 5 3735 40parent: 5 3735 41parent: 5 3735 42parent: 5 3735 43parent: 5 3735 44child: 1 3737 45child: 1 3743 46child: 1 3742 47child: 1 3741 48child: 1 3740 49child: 1 3744 50child: 1 3745 51child: 1 3747 52child: 1 3746 53child: 1 3750 54child: 1 3757 55child: 1 3755 56child: 1 3751 57child: 1 3749 58child: 1 3760 59child: 1 3774 60child: 1 3767 61child: 1 3768 62child: 1 3754 63child: 1 3775 64child: 1 3756 65child: 1 3770 66child: 1 3759 67child: 1 3771 68child: 1 3748 69child: 1 3769 70child: 1 3773 71child: 1 3752 72child: 1 3753 73child: 1 3766 74child: 1 3762 75child: 1 3764 76child: 1 3772 77child: 1 3765 78child: 1 3758 79child: 1 3761 80child: 1 3763
上記のようになるのですが、childのプロセスが1だけになってしまいます。
子プロセスも配列arrの1〜5に分けたいのですが、どのようにすればいいのでしょうか。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2018/05/22 06:08
2018/05/22 06:10