diff options
author | Sam Wilkins <samwilkins333@gmail.com> | 2019-12-29 15:35:38 -0800 |
---|---|---|
committer | Sam Wilkins <samwilkins333@gmail.com> | 2019-12-29 15:35:38 -0800 |
commit | b4bf12dd03cdac8c9930ddf5e19e36c87b3696e6 (patch) | |
tree | 6c71a85034267bd1d471113ac4c7114034fe79fc /src/server/session_manager/session_manager_cluster.ts | |
parent | ac1f91082abee583384f50b95d6a1a5e7386ca07 (diff) |
experimenting with process clustering
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 |