1
0
Fork 0
mirror of https://github.com/immich-app/immich.git synced 2025-01-01 08:31:59 +00:00

feat: seperate sub-process for api worker (#10000)

This commit is contained in:
Zack Pollard 2024-06-06 11:56:57 +01:00 committed by GitHub
parent 7e2a03a8d9
commit 8f42766979
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 7 additions and 8 deletions

View file

@ -1,4 +1,5 @@
import { CommandFactory } from 'nest-commander';
import { fork } from 'node:child_process';
import { Worker } from 'node:worker_threads';
import { ImmichAdminModule } from 'src/app.module';
import { LogLevel } from 'src/config';
@ -16,7 +17,7 @@ async function bootstrapImmichAdmin() {
function bootstrapWorker(name: string) {
console.log(`Starting ${name} worker`);
const worker = new Worker(`./dist/workers/${name}.js`);
const worker = name === 'api' ? fork(`./dist/workers/${name}.js`) : new Worker(`./dist/workers/${name}.js`);
worker.on('exit', (exitCode) => {
if (exitCode !== 0) {
console.error(`${name} worker exited with code ${exitCode}`);

View file

@ -3,7 +3,6 @@ import { NestExpressApplication } from '@nestjs/platform-express';
import { json } from 'body-parser';
import cookieParser from 'cookie-parser';
import { existsSync } from 'node:fs';
import { isMainThread } from 'node:worker_threads';
import sirv from 'sirv';
import { ApiModule } from 'src/app.module';
import { envName, excludePaths, isDev, serverVersion, WEB_ROOT } from 'src/constants';
@ -16,6 +15,7 @@ import { useSwagger } from 'src/utils/misc';
const host = process.env.HOST;
async function bootstrap() {
process.title = 'immich-api';
otelSDK.start();
const port = Number(process.env.IMMICH_PORT) || 3001;
@ -60,9 +60,7 @@ async function bootstrap() {
logger.log(`Immich Server is listening on ${await app.getUrl()} [v${serverVersion}] [${envName}] `);
}
if (!isMainThread) {
bootstrap().catch((error) => {
console.error(error);
process.exit(1);
throw error;
});
}