0

cluster と node.js を使用しています。クラスターのドキュメントによると、マスター/ワーカーのセットアップとマスター フォーク ワーカーがあります。

 cluster.on("death", function() {
    cluster.fork()
 })

ワーカーでは、app.listen(3000) の前にいくつかの前処理を行います。前処理が通らなければサーバーを起動しても意味がないと思います。

// In worker code
preProcess ( function(err) {
  if err
     exit()
  else
    app.listen(3000)

}}

今私の問題は、マスタークラッサープロセスがワーカーをフォークし続け、前プロセスが通過しないためにワーカーが死に続けることです。

ワーカーをフォークするタイミングをマスターで区別する方法が必要です。

どうすればこれを達成できますか?

4

1 に答える 1

0

cluster.on('exit', function (worker, code, signal) を使用する必要があります。これは、変数コードとシグナルを調べて、何が問題で、いつフォークするかを判断できるためです。

  cluster.on('exit', function (worker, code, signal) {
    logger.log.warn('Worker server died (ID: %d, PID: %d)', worker.id, worker.process.pid);
    cluster.fork();
  });
于 2013-08-28T20:45:01.090 に答える