node.js 에 쓰레드를 쓸수가 있군요

이건개발·2024년 8월 25일
1
post-thumbnail

현재 문제점이

  1. api 호출
  2. 처리
  3. 결과 db 저장 (오래걸림)
  4. 결과 응답 주기

에서 3번 작업이 오래걸리기도하고 결과를 알필요는 없습니다.
3,4번은 서로 영향을 받지 않는 작업이죠

3,4번 순서를 바꾸면 되지 않느냐 라고 생각할 수도 있겠지만
한번호출때는 원하는 이득이 날 수 있으나
여러번 처리된다고 가정하면 처리속도는 계속 쌓이게됩니다.

그래서 방법없나 찾아보니 쓰레드 라는게 있군요
몇가지 제한이 있긴하지만 완전히 분리된 처리가 가능해보입니다.

  1. api 호출
  2. 처리
  3. 쓰레드로 던지면 빠르게 끝남
  4. 결과 응답 주기

쓰레드에서는 나름데로 최적화할 수 잇을것 같구요
쌓은 다음 일정 숫자가 모이면 한번에 쿼리한다거나 말이죠

================

발견한 문서

자식 프로세스를 만드는 service 라는 것도 있고
쓰레드를 만드는 방법도 있군요

링크: https://wanago.io/2019/05/06/node-js-typescript-12-worker-threads/

문서의 요약

시간 오래걸리는건 쓰레드로 던져버리면 되겠군요
로그나 파일 쓰기 같은거 말이죠

충격적이군요

const worker = new Worker('./worker.js', {
  workerData: {
    value: 15,
    path: './worker.ts'
  }
});

참고로 이런 예제코드에 new Worker 의 worker.js 라는 파일이 실행되는것이지
path: './worker.ts' 이건 아무것도 아닙니다.
typescript 로 돌리려면 빌드해서 js 로 돌리는 방법이 좋겠습니다.

추가로

require('ts-node').register();
require(path.resolve(__dirname, './worker.ts'));

js 에서 다시 ts 돌리는 방법도 있군요 테스트 해보면 후기를 남길 수 있겠군요

이것도 충격적이군요

profile
게임 개발 / 웹 개발 / 주식 투자 / 은퇴자 / 클라우드타입 / 파이어베이스 / 수퍼베이스 / 유니티

0개의 댓글