set workers to reduce their processing priority

This commit is contained in:
Kaitlyn Allan 2023-03-23 17:12:41 +10:00 committed by ThatOneCalculator
parent 5b575c67ed
commit 35a1b19369
No known key found for this signature in database
GPG Key ID: 8703CACD01000000

View File

@ -9,6 +9,7 @@ import { envOption } from "../env.js";
import "reflect-metadata"; import "reflect-metadata";
import { masterMain } from "./master.js"; import { masterMain } from "./master.js";
import { workerMain } from "./worker.js"; import { workerMain } from "./worker.js";
import os from "node:os";
const logger = new Logger("core", "cyan"); const logger = new Logger("core", "cyan");
const clusterLogger = logger.createSubLogger("cluster", "orange", false); const clusterLogger = logger.createSubLogger("cluster", "orange", false);
@ -31,6 +32,16 @@ export default async function () {
await workerMain(); 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. // For when Calckey is started in a child process during unit testing.
// Otherwise, process.send cannot be used, so start it. // Otherwise, process.send cannot be used, so start it.
if (process.send) { if (process.send) {