From b4bf12dd03cdac8c9930ddf5e19e36c87b3696e6 Mon Sep 17 00:00:00 2001 From: Sam Wilkins Date: Sun, 29 Dec 2019 15:35:38 -0800 Subject: experimenting with process clustering --- .../session_manager/session_manager_cluster.ts | 27 ++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 src/server/session_manager/session_manager_cluster.ts (limited to 'src/server/session_manager/session_manager_cluster.ts') 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 -- cgit v1.2.3-70-g09d2