Ich habe einen Node.js-Prozess (kein Server), der N child verarbeitet. Irgendwann könnte es mehr als 50 CPs geben. Also habe ich angefangen zu denken, dass, wenn process.send (IPC) wirklich blockiert, dies eine große Strafe für jeden CP sein könnte. Denn was in meinem Programm passiert, ist, dass jeder CP process.send verwendet, um eine Nachricht an den übergeordneten Prozess zu senden, damit der Parent die Protokollierung durchführt, sodass die Protokollierung synchronisiert wird. Aber wenn process.send blockiert, wird der Elternprozess irgendwann zu einem Engpass.process.send ist sync/async auf * nix/Windows?
Die Frage ist also - ist Node.js IPC blockiert oder nicht blockiert auf * nix und Windows? Wenn es blockiert, und wenn ich oder jemand anderes wirklich wollen asynchrone IPC, sollte ich eine Nachrichtenwarteschlange oder ZeroMQ oder etwas?
eigentlich, wenn Sie den Github-Link lesen, heißt es, dass process.send auf asynchrone, nicht synchrone gesetzt wurde, was gute Nachrichten –
"ChildProcess.prototype.send()" und "process.send()" ist verwendet, um synchron zu betreiben, wurde aber in libuv/libuv @ 393c1c5 asynchron –