summaryrefslogtreecommitdiff
path: root/packages/backend/src/boot/master.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/backend/src/boot/master.ts')
-rw-r--r--packages/backend/src/boot/master.ts37
1 files changed, 22 insertions, 15 deletions
diff --git a/packages/backend/src/boot/master.ts b/packages/backend/src/boot/master.ts
index bf51960482..ec09b4350b 100644
--- a/packages/backend/src/boot/master.ts
+++ b/packages/backend/src/boot/master.ts
@@ -6,14 +6,17 @@ import cluster from 'node:cluster';
import chalk from 'chalk';
import chalkTemplate from 'chalk-template';
import semver from 'semver';
-
-import Logger from '@/services/logger.js';
-import loadConfig from '@/config/load.js';
-import { Config } from '@/config/types.js';
-import { lessThan } from '@/prelude/array.js';
-import { envOption } from '../env.js';
+import { NestFactory } from '@nestjs/core';
+import Logger from '@/logger.js';
+import { loadConfig } from '@/config.js';
+import type { Config } from '@/config.js';
+import { lessThan } from '@/misc/prelude/array.js';
import { showMachineInfo } from '@/misc/show-machine-info.js';
-import { db, initDb } from '../db/postgre.js';
+import { DaemonModule } from '@/daemons/DaemonModule.js';
+import { JanitorService } from '@/daemons/JanitorService.js';
+import { QueueStatsService } from '@/daemons/QueueStatsService.js';
+import { ServerStatsService } from '@/daemons/ServerStatsService.js';
+import { envOption } from '../env.js';
const _filename = fileURLToPath(import.meta.url);
const _dirname = dirname(_filename);
@@ -60,7 +63,7 @@ export async function masterMain() {
await showMachineInfo(bootLogger);
showNodejsVersion();
config = loadConfigBoot();
- await connectDb();
+ //await connectDb();
} catch (e) {
bootLogger.error('Fatal error occurred during initialization', null, true);
process.exit(1);
@@ -75,9 +78,11 @@ export async function masterMain() {
bootLogger.succ(`Now listening on port ${config.port} on ${config.url}`, null, true);
if (!envOption.noDaemons) {
- import('../daemons/server-stats.js').then(x => x.default());
- import('../daemons/queue-stats.js').then(x => x.default());
- import('../daemons/janitor.js').then(x => x.default());
+ const daemons = await NestFactory.createApplicationContext(DaemonModule);
+ daemons.enableShutdownHooks();
+ daemons.get(JanitorService).start();
+ daemons.get(QueueStatsService).start();
+ daemons.get(ServerStatsService).start();
}
}
@@ -127,6 +132,7 @@ function loadConfigBoot(): Config {
return config;
}
+/*
async function connectDb(): Promise<void> {
const dbLogger = bootLogger.createSubLogger('db');
@@ -136,14 +142,15 @@ async function connectDb(): Promise<void> {
await initDb();
const v = await db.query('SHOW server_version').then(x => x[0].server_version);
dbLogger.succ(`Connected: v${v}`);
- } catch (e) {
+ } catch (err) {
dbLogger.error('Cannot connect', null, true);
- dbLogger.error(e);
+ dbLogger.error(err);
process.exit(1);
}
}
+*/
-async function spawnWorkers(limit: number = 1) {
+async function spawnWorkers(limit = 1) {
const workers = Math.min(limit, os.cpus().length);
bootLogger.info(`Starting ${workers} worker${workers === 1 ? '' : 's'}...`);
await Promise.all([...Array(workers)].map(spawnWorker));
@@ -155,7 +162,7 @@ function spawnWorker(): Promise<void> {
const worker = cluster.fork();
worker.on('message', message => {
if (message === 'listenFailed') {
- bootLogger.error(`The server Listen failed due to the previous error.`);
+ bootLogger.error('The server Listen failed due to the previous error.');
process.exit(1);
}
if (message !== 'ready') return;