NestJS Lifecycle events

paduck·2024년 6월 16일
0

NestJS

목록 보기
20/24

라이프사이클 훅을 제공

  • 중요한 라이프사이클 이벤트에 대한 가시성을 제공
  • 이벤트가 발생할 때 모듈, providers 또는 컨트롤러에서 등록된 코드를 실행

애플리케이션 bootstrap 및 종료 동안 발생

  • 각 라이플사이클 이벤트에서 등록된 라이프사이클 훅 메서드 호출
라이프사이클 훅 메서드훅 메서드 호출을 트리거하는 라이프사이클 이벤트
onModuleInit()호스트 모듈의 종속성이 해결된 후 호출됩니다.
onApplicationBootstrap()모든 모듈이 초기화된 후, 연결을 수신하기 전에 호출됩니다.
onModuleDestroy()*종료 신호(예: SIGTERM)를 받은 후 호출됩니다.
beforeApplicationShutdown()*모든 onModuleDestroy() 핸들러가 완료된 후(프로미스가 해결되거나 거부됨); 완료된 후(프로미스가 해결되거나 거부됨) 기존 연결이 모두 닫히고(app.close() 호출됨) 호출됩니다.
onApplicationShutdown()*연결이 닫힌 후(app.close() 해결됨) 호출됩니다.
  • onModuleDestroy, beforeApplicationShutdown 및 onApplicationShutdown

    • app.close()를 명시적으로 호출
    • 프로세스가 특별한 시스템 신호(예: SIGTERM)를 받을 때만 트리거
    • 애플리케이션 부트스트랩 시 enableShutdownHooks를 올바르게 호출
  • 이러한 이벤트의 경우, app.close()를 명시적으로 호출하지 않으면 시스템 신호(Such as SIGTERM)와 함께 작동하도록 선택

라이프사이클 훅을 사용하기 위해 typescript 의 interface 를 활용
훅에 async/await 적용 가능
대체로 종료 관련 훅은 컨테이너 수명을 관리하기 위해 적용

  • 이 경우 시스템 리소스를 사용학 ㅔ됌
profile
학습 velog

0개의 댓글