0

Node と Redis を使用しています。イベントが発生した場合に備えて、サブスクライバーを redis に追加する必要があります。問題は、処理を一度だけ実行したいことです...そして、分岐したプロセスの1つだけがredisをリッスンする必要があるだけでいいのです。

ちょうど今、別のファイルで新しいクラスターをフォークして、そこから開始できるかどうかをテストしましたが、喜びはありませんでした。誰でもこれを行う方法を知っていますか?

Nodeの最新の安定バージョン(0.6.15)を実行しています

これが私のコードです(2ファイル):


clusterTest1:
---
var c2 = require('./clusterTest2');

console.log('clusterTest1');
//c2.test();
---

clusterTest2: 
---
var cluster = require ('cluster');

console.log('clusterTest2');

if (cluster.isMaster) {
    cluster.fork();
} else {
    console.log('cluster spawned');
}
---

出力:

clusterTest2 clusterTest1 clusterTest2 クラスターが生成された clusterTest1

ありがとう!

4

1 に答える 1

0

process.env.NODE_WORKER_IDを使用して、この回避策を見つけました。NODE_WORKER_IDに応じて異なるコードを実行できます。これにより、1つのインスタンスのみがメッセージをサブスクライブするという私の問題が修正されます。

于 2012-04-16T16:25:54.010 に答える