From e696a13fb23fb10df1d8fba49b6f7a7b24b00030 Mon Sep 17 00:00:00 2001 From: Kaitlyn Allan Date: Thu, 23 Mar 2023 17:12:41 +1000 Subject: [PATCH] set workers to reduce their processing priority --- packages/backend/src/boot/index.ts | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/packages/backend/src/boot/index.ts b/packages/backend/src/boot/index.ts index 4e1d94765..e4f2ed7b1 100644 --- a/packages/backend/src/boot/index.ts +++ b/packages/backend/src/boot/index.ts @@ -9,6 +9,7 @@ import { envOption } from "../env.js"; import "reflect-metadata"; import { masterMain } from "./master.js"; import { workerMain } from "./worker.js"; +import os from "node:os"; const logger = new Logger("core", "cyan"); const clusterLogger = logger.createSubLogger("cluster", "orange", false); @@ -31,6 +32,16 @@ export default async function () { await workerMain(); } + if (cluster.isPrimary) { + // Leave the master process with a marginally lower priority but not too low. + os.setPriority(2); + } + if (cluster.isWorker) { + // Set workers to a much lower priority so that the master process will be + // able to respond to api calls even if the workers gank everything. + os.setPriority(10); + } + // For when Calckey is started in a child process during unit testing. // Otherwise, process.send cannot be used, so start it. if (process.send) {