aboutsummaryrefslogtreecommitdiff
path: root/src/server/session_manager/session_manager_cluster.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/session_manager/session_manager_cluster.ts')
-rw-r--r--src/server/session_manager/session_manager_cluster.ts27
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