[PATCH] set workers to reduce their processing priority

Authored-by: Kaitlyn Allan <kaitlyn.allan@enlabs.cloud>
This commit is contained in:
cutestnekoaqua 2023-03-25 12:35:30 +01:00
parent cdcd4320a9
commit 23da34f495

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) {