1

http://socketcluster.io/を実行していますが、ファイルが変更されるたびにワーカーを再起動したいと考えています。ただし、nodemon server.js次の無限に繰り返される壁で再起動しようとするとすぐに失敗します。

1445633138359 - Origin: Worker (PID 44372)
    [Error] Error: connect ECONNREFUSED /var/folders/fj/yzfd3_tn7xd0smz7j6s093mh0000gn/T/socketcluster/6879fe94-ed92-4188-b1d7-cb187a5ade4e_b68fcded6c/b0
    at Object.exports._errnoException (util.js:874:11)
    at exports._exceptionWithHostPort (util.js:897:20)
    at PipeConnectWrap.afterConnect [as oncomplete] (net.js:1063:14)
1445633138362 - Worker 0 exited - Exit code: 0

新しい変更をロードするために SocketCluster を安全に再起動するにはどうすればよいですか?

4

2 に答える 2

2

nodemonSIGUSR2シグナルをメイン (マスター) プロセスに送信します。SocketCluster は、これを (正しく) ワーカーを再起動する要求として解釈します。残念ながら、物事が適切にシャットダウンされず、エラーが飛び交う未解決の問題があります。

次の 2 つのオプションがあります。

リンクされた問題からコードを追加できます。

house.addShutdownHandler(function(ctx, next){
    socketCluster.killWorkers();
    socketCluster.killBrokers();
    next();
});

またはforever、「すべてを再起動する」信号を送信するために使用します。

forever -w --killSignal=SIGTERM server.js
于 2015-10-23T21:02:16.597 に答える