Skip to content

Commit

Permalink
perf: hmr 적용
Browse files Browse the repository at this point in the history
  • Loading branch information
scarf005 committed Jul 30, 2023
1 parent 85af0eb commit 182b98e
Showing 1 changed file with 17 additions and 5 deletions.
22 changes: 17 additions & 5 deletions backend/src/server.ts
Original file line number Diff line number Diff line change
@@ -1,14 +1,16 @@
/// <reference types="vite/client" />

import { createHttpTerminator } from 'http-terminator';
import { logger } from '~/v1/utils/logger';
import scheduler from '~/v1/utils/scheduler';
import { scheduler } from '~/v1/utils/scheduler';
import { gracefulTerminationTimeout } from '~/config';
import jipDataSource from '~/app-data-source';
import app from './app';

const port = '3000';

const server = app.listen(port, () => {
console.log(`
logger.info(`
################################################
🛡️ Server listening on port: ${port}🛡️
################################################
Expand All @@ -18,9 +20,8 @@ const server = app.listen(port, () => {

const httpTerminator = createHttpTerminator({ server, gracefulTerminationTimeout });

/** 종료 시그널을 받으면 할당된 자원(typeorm DB 연결, 소켓)을 반환하고 서버를 종료합니다. */
const attemptGracefulShutdown = async (signal: string) => {
logger.warn(`Attempting to gracefully shutdown for ${signal}`);
/** 자원 할당 해제 */
const releaseResources = async () => {
if (jipDataSource.isInitialized) {
try {
await jipDataSource.destroy();
Expand All @@ -31,8 +32,19 @@ const attemptGracefulShutdown = async (signal: string) => {
}
await httpTerminator.terminate();
logger.warn('closed http server');
};

/** 종료 시그널을 받으면 할당된 자원(typeorm DB 연결, 소켓)을 반환하고 서버를 종료합니다. */
const attemptGracefulShutdown = async (signal: string) => {
logger.warn(`Attempting to gracefully shutdown for ${signal}`);
await releaseResources();
process.exit(0);
};

const signals = ['SIGTERM', 'SIGINT', 'SIGUSR2'];
signals.forEach((signal) => process.on(signal, () => attemptGracefulShutdown(signal)));

if (import.meta.hot) {
import.meta.hot.on('vite:beforeFullReload', releaseResources);
import.meta.hot.dispose(releaseResources);
}

0 comments on commit 182b98e

Please sign in to comment.