summaryrefslogtreecommitdiff
path: root/packages/backend/src/boot
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2023-01-21 14:09:01 +0900
committerGitHub <noreply@github.com>2023-01-21 14:09:01 +0900
commit7e89e709346b466f311f9556c592919f2358b1e7 (patch)
tree1f15c88f23ad2d8f84c34b39240f0fba739ecbf5 /packages/backend/src/boot
parentenhance(server): set Cache-Control header for some routes (diff)
downloadmisskey-7e89e709346b466f311f9556c592919f2358b1e7.tar.gz
misskey-7e89e709346b466f311f9556c592919f2358b1e7.tar.bz2
misskey-7e89e709346b466f311f9556c592919f2358b1e7.zip
enhance(server): separate job queue process (#9662)
* enhance(server): separate job queue process * add commands for build with swc
Diffstat (limited to 'packages/backend/src/boot')
-rw-r--r--packages/backend/src/boot/master.ts25
-rw-r--r--packages/backend/src/boot/worker.ts19
2 files changed, 21 insertions, 23 deletions
diff --git a/packages/backend/src/boot/master.ts b/packages/backend/src/boot/master.ts
index 4630217c4c..93cb3131ba 100644
--- a/packages/backend/src/boot/master.ts
+++ b/packages/backend/src/boot/master.ts
@@ -17,6 +17,9 @@ import { JanitorService } from '@/daemons/JanitorService.js';
import { QueueStatsService } from '@/daemons/QueueStatsService.js';
import { ServerStatsService } from '@/daemons/ServerStatsService.js';
import { NestLogger } from '@/NestLogger.js';
+import { ChartManagementService } from '@/core/chart/ChartManagementService.js';
+import { ServerService } from '@/server/ServerService.js';
+import { MainModule } from '@/MainModule.js';
import { envOption } from '../env.js';
const _filename = fileURLToPath(import.meta.url);
@@ -70,6 +73,15 @@ export async function masterMain() {
process.exit(1);
}
+ const app = await NestFactory.createApplicationContext(MainModule, {
+ logger: new NestLogger(),
+ });
+ app.enableShutdownHooks();
+
+ // start server
+ const serverService = app.get(ServerService);
+ serverService.launch();
+
bootLogger.succ('Misskey initialized');
if (!envOption.disableClustering) {
@@ -78,15 +90,10 @@ export async function masterMain() {
bootLogger.succ(`Now listening on port ${config.port} on ${config.url}`, null, true);
- if (!envOption.noDaemons) {
- const daemons = await NestFactory.createApplicationContext(DaemonModule, {
- logger: new NestLogger(),
- });
- daemons.enableShutdownHooks();
- daemons.get(JanitorService).start();
- daemons.get(QueueStatsService).start();
- daemons.get(ServerStatsService).start();
- }
+ app.get(ChartManagementService).start();
+ app.get(JanitorService).start();
+ app.get(QueueStatsService).start();
+ app.get(ServerStatsService).start();
}
function showEnvironment(): void {
diff --git a/packages/backend/src/boot/worker.ts b/packages/backend/src/boot/worker.ts
index f29e37de78..e0574643b7 100644
--- a/packages/backend/src/boot/worker.ts
+++ b/packages/backend/src/boot/worker.ts
@@ -1,32 +1,23 @@
import cluster from 'node:cluster';
import { NestFactory } from '@nestjs/core';
-import { envOption } from '@/env.js';
import { ChartManagementService } from '@/core/chart/ChartManagementService.js';
-import { ServerService } from '@/server/ServerService.js';
import { QueueProcessorService } from '@/queue/QueueProcessorService.js';
import { NestLogger } from '@/NestLogger.js';
-import { RootModule } from '../RootModule.js';
+import { QueueProcessorModule } from '@/queue/QueueProcessorModule.js';
/**
* Init worker process
*/
export async function workerMain() {
- const app = await NestFactory.createApplicationContext(RootModule, {
+ const jobQueue = await NestFactory.createApplicationContext(QueueProcessorModule, {
logger: new NestLogger(),
});
- app.enableShutdownHooks();
-
- // start server
- const serverService = app.get(ServerService);
- serverService.launch();
+ jobQueue.enableShutdownHooks();
// start job queue
- if (!envOption.onlyServer) {
- const queueProcessorService = app.get(QueueProcessorService);
- queueProcessorService.start();
- }
+ jobQueue.get(QueueProcessorService).start();
- app.get(ChartManagementService).run();
+ jobQueue.get(ChartManagementService).start();
if (cluster.isWorker) {
// Send a 'ready' message to parent process