enhance: 起動からlistenまでかかる時間を減らす (MisskeyIO#1410)

This commit is contained in:
あわわわとーにゅ 2026-01-24 10:14:05 +09:00 committed by kakkokari-gtyih
parent 2e0ed4f672
commit 71b5314394
2 changed files with 13 additions and 9 deletions

View File

@ -4,16 +4,15 @@
*/ */
import { NestFactory } from '@nestjs/core'; import { NestFactory } from '@nestjs/core';
import { ChartManagementService } from '@/core/chart/ChartManagementService.js';
import { QueueProcessorService } from '@/queue/QueueProcessorService.js';
import { NestLogger } from '@/NestLogger.js'; import { NestLogger } from '@/NestLogger.js';
import { QueueProcessorModule } from '@/queue/QueueProcessorModule.js';
import { QueueStatsService } from '@/daemons/QueueStatsService.js';
import { ServerStatsService } from '@/daemons/ServerStatsService.js';
import { ServerService } from '@/server/ServerService.js';
import { MainModule } from '@/MainModule.js';
export async function server() { export async function server() {
const { MainModule } = await import('../MainModule.js');
const { ServerService } = await import('../server/ServerService.js');
const { ChartManagementService } = await import('../core/chart/ChartManagementService.js');
const { QueueStatsService } = await import('../daemons/QueueStatsService.js');
const { ServerStatsService } = await import('../daemons/ServerStatsService.js');
const app = await NestFactory.createApplicationContext(MainModule, { const app = await NestFactory.createApplicationContext(MainModule, {
logger: new NestLogger(), logger: new NestLogger(),
}); });
@ -31,6 +30,10 @@ export async function server() {
} }
export async function jobQueue() { export async function jobQueue() {
const { QueueProcessorModule } = await import('../queue/QueueProcessorModule.js');
const { QueueProcessorService } = await import('../queue/QueueProcessorService.js');
const { ChartManagementService } = await import('../core/chart/ChartManagementService.js');
const jobQueue = await NestFactory.createApplicationContext(QueueProcessorModule, { const jobQueue = await NestFactory.createApplicationContext(QueueProcessorModule, {
logger: new NestLogger(), logger: new NestLogger(),
}); });

View File

@ -13,8 +13,6 @@ import chalk from 'chalk';
import Xev from 'xev'; import Xev from 'xev';
import Logger from '@/logger.js'; import Logger from '@/logger.js';
import { envOption } from '../env.js'; import { envOption } from '../env.js';
import { masterMain } from './master.js';
import { workerMain } from './worker.js';
import { readyRef } from './ready.js'; import { readyRef } from './ready.js';
import 'reflect-metadata'; import 'reflect-metadata';
@ -71,10 +69,12 @@ process.on('exit', code => {
if (!envOption.disableClustering) { if (!envOption.disableClustering) {
if (cluster.isPrimary) { if (cluster.isPrimary) {
logger.info(`Start main process... pid: ${process.pid}`); logger.info(`Start main process... pid: ${process.pid}`);
const { masterMain } = await import('./master.js');
await masterMain(); await masterMain();
ev.mount(); ev.mount();
} else if (cluster.isWorker) { } else if (cluster.isWorker) {
logger.info(`Start worker process... pid: ${process.pid}`); logger.info(`Start worker process... pid: ${process.pid}`);
const { workerMain } = await import('./worker.js');
await workerMain(); await workerMain();
} else { } else {
throw new Error('Unknown process type'); throw new Error('Unknown process type');
@ -82,6 +82,7 @@ if (!envOption.disableClustering) {
} else { } else {
// 非clusterの場合はMasterのみが起動するため、Workerの処理は行わない(cluster.isWorker === trueの状態でこのブロックに来ることはない) // 非clusterの場合はMasterのみが起動するため、Workerの処理は行わない(cluster.isWorker === trueの状態でこのブロックに来ることはない)
logger.info(`Start main process... pid: ${process.pid}`); logger.info(`Start main process... pid: ${process.pid}`);
const { masterMain } = await import('./master.js');
await masterMain(); await masterMain();
ev.mount(); ev.mount();
} }