1. Worker thread 생성하기 main.ts import { Injectable } from '@nestjs/common'; import { ... worker.ts import { isMainThread, workerData, parentPort } from 'worker_threads'; if (!isMainThread) { async ... Nest.js는 ts-node를 사용하지 않기 때문에 번들링 툴 등을 사용하지 않는 이상 상대경로가 바뀔일은 없으므로 이에 대해서는 염려하지 않아도 된다. 그러나 상대경로가 하드코딩 된다는 것이 맘에 들지 않는다. 따라서 다음과 같이 바꿔본다. ...
@Module({ providers: [ { provide: 'token', useFactory: ... 위와 같은 방법으로 간편하게 custom provider를 Nest.js의 IoC 컨테이너에 제공할 수 있다. 가령, redis 라이브러리에서 생성한 redis 클라이언트를 제공할 수 있다. import { createClient } from 'redis'; import { ConfigService } ... 그런데 이렇게만 제공하면 SIGTERM 등으로 종료 시그널을 받아 shutdown hook이 동작할 때에 커넥션이 정리되지 않으면서 어플리케이션이 알아서 종료되지 않는다. 이에 관하여 dispose 기능을 프레임워크 레벨에서 추가할 것을 요구하는 GitHub issue가 있다. - https://github.com/nestjs/nest/issues/9497 ...