diff options
Diffstat (limited to 'src/server/session_manager/session_manager_cluster.ts')
-rw-r--r-- | src/server/session_manager/session_manager_cluster.ts | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/server/session_manager/session_manager_cluster.ts b/src/server/session_manager/session_manager_cluster.ts new file mode 100644 index 000000000..bfe6187c3 --- /dev/null +++ b/src/server/session_manager/session_manager_cluster.ts @@ -0,0 +1,27 @@ +import { isMaster, fork, on } from "cluster"; +import { cpus } from "os"; +import { createServer } from "http"; + +const capacity = cpus().length; + +if (isMaster) { + console.log(capacity); + for (let i = 0; i < capacity; i++) { + fork(); + } + on("exit", (worker, code, signal) => { + console.log(`worker ${worker.process.pid} died`); + }); +} else { + const port = 1234; + createServer().listen(port, () => { + console.log('process id local', process.pid); + console.log(`http server started at port ${port}`); + }); +} + +process.on('uncaughtException', function (err) { + console.error((new Date).toUTCString() + ' uncaughtException:', err.message); + console.error(err.stack); + process.exit(1); +});
\ No newline at end of file |